US8243593B2 - Mechanism for identifying and penalizing misbehaving flows in a network - Google Patents

Mechanism for identifying and penalizing misbehaving flows in a network Download PDF

Info

Publication number
US8243593B2
US8243593B2 US11/022,599 US2259904A US8243593B2 US 8243593 B2 US8243593 B2 US 8243593B2 US 2259904 A US2259904 A US 2259904A US 8243593 B2 US8243593 B2 US 8243593B2
Authority
US
United States
Prior art keywords
flow
penalty
behavioral statistics
mfm
router
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US11/022,599
Other versions
US20060133280A1 (en
Inventor
Vishnu Natchu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MOBILE CONVERGENCE Ltd
Sable Networks Inc
Original Assignee
Sable Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
US case filed in Texas Western District Court litigation Critical https://portal.unifiedpatents.com/litigation/Texas%20Western%20District%20Court/case/6%3A20-cv-00808 Source: District Court Jurisdiction: Texas Western District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
First worldwide family litigation filed litigation https://patents.darts-ip.com/?family=36595594&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=US8243593(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Eastern District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Eastern%20District%20Court/case/5%3A20-cv-00109 Source: District Court Jurisdiction: Texas Eastern District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Western District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Western%20District%20Court/case/6%3A21-cv-00190 Source: District Court Jurisdiction: Texas Western District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Western District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Western%20District%20Court/case/6%3A21-cv-00175 Source: District Court Jurisdiction: Texas Western District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Eastern District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Eastern%20District%20Court/case/5%3A20-cv-00111 Source: District Court Jurisdiction: Texas Eastern District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
PTAB case IPR2020-01712 filed (Settlement) litigation https://portal.unifiedpatents.com/ptab/case/IPR2020-01712 Petitioner: "Unified Patents PTAB Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
PTAB case IPR2021-00909 filed (Final Written Decision) litigation https://portal.unifiedpatents.com/ptab/case/IPR2021-00909 Petitioner: "Unified Patents PTAB Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Eastern District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Eastern%20District%20Court/case/5%3A20-cv-00120 Source: District Court Jurisdiction: Texas Eastern District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Western District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Western%20District%20Court/case/6%3A20-cv-00569 Source: District Court Jurisdiction: Texas Western District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Western District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Western%20District%20Court/case/6%3A20-cv-00524 Source: District Court Jurisdiction: Texas Western District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Western District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Western%20District%20Court/case/6%3A21-cv-00241 Source: District Court Jurisdiction: Texas Western District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Court of Appeals for the Federal Circuit litigation https://portal.unifiedpatents.com/litigation/Court%20of%20Appeals%20for%20the%20Federal%20Circuit/case/23-1612 Source: Court of Appeals for the Federal Circuit Jurisdiction: Court of Appeals for the Federal Circuit "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Delaware District Court litigation https://portal.unifiedpatents.com/litigation/Delaware%20District%20Court/case/1%3A21-cv-00201 Source: District Court Jurisdiction: Delaware District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Eastern District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Eastern%20District%20Court/case/5%3A21-cv-00040 Source: District Court Jurisdiction: Texas Eastern District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
PTAB case IPR2022-00228 filed (Final Written Decision) litigation https://portal.unifiedpatents.com/ptab/case/IPR2022-00228 Petitioner: "Unified Patents PTAB Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Western District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Western%20District%20Court/case/6%3A21-cv-00261 Source: District Court Jurisdiction: Texas Western District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
US case filed in Texas Eastern District Court litigation https://portal.unifiedpatents.com/litigation/Texas%20Eastern%20District%20Court/case/5%3A20-cv-00196 Source: District Court Jurisdiction: Texas Eastern District Court "Unified Patents Litigation Data" by Unified Patents is licensed under a Creative Commons Attribution 4.0 International License.
Priority to US11/022,599 priority Critical patent/US8243593B2/en
Assigned to CASPIAN NETWORKS, INC. reassignment CASPIAN NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NATCHU, VISHNU
Application filed by Sable Networks Inc filed Critical Sable Networks Inc
Priority to PCT/US2005/046092 priority patent/WO2006069044A2/en
Publication of US20060133280A1 publication Critical patent/US20060133280A1/en
Assigned to VENTURE LENDING & LEASING IV, INC. reassignment VENTURE LENDING & LEASING IV, INC. SECURITY AGREEMENT Assignors: CASPIAN NETWORKS, INC.
Assigned to SABLE NETWORKS, INC. reassignment SABLE NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MOBILE CONVERGENCE COMPANY, LTD.
Assigned to MOBILE CONVERGENCE, LTD. reassignment MOBILE CONVERGENCE, LTD. NUNC PRO TUNC ASSIGNMENT (SEE DOCUMENT FOR DETAILS). Assignors: CASPIAN NETWORKS, INC.
Assigned to CASPIAN NETWORKS, INC. reassignment CASPIAN NETWORKS, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: VENTURE LENDING & LEASING IV, INC.
Application granted granted Critical
Publication of US8243593B2 publication Critical patent/US8243593B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Definitions

  • P2P traffic peer-to-peer traffic on the Internet has grown dramatically in recent years. In fact, it has been estimated that P2P traffic now represents about 50-70 percent of the total traffic on the Internet. This is so despite the fact that the number of P2P users is quite small compared to the number of non P2P users. Thus, it appears that most of the bandwidth on the Internet is being consumed by just a minority of the users. For this and other reasons, P2P traffic is viewed by ISP's (Internet service providers) and others as being abusive/misbehaving traffic that should be controlled and penalized.
  • ISP's Internet service providers
  • P2P protocols In order to control P2P traffic, however, it first needs to be identified. Earlier generations of P2P protocols used fixed TCP port numbers for their transmissions. For example, FastTrack used TCP port 1214. This made P2P traffic easy to identify. Current P2P protocols, however, no longer have to use fixed port numbers. Rather, they can be configured to use random dynamic port numbers so that P2P traffic can now be masqueraded as other types of traffic, such as HTTP web browsing and unspecified TCP traffic. As a result, the current P2P protocols have rendered the port-based identification techniques ineffective.
  • P2P protocols Another technique that has been used to identify P2P traffic involves the use of signatures. Specifically, it was observed that some P2P protocols inserted distinct information into their data packets. Using this distinct information as a signature, it was possible to identify packets that were assembled using those P2P protocols. This technique has several problems. First, it usually is effective for only a relatively short period of time. As the P2P protocols evolve and mutate (which they do on a fairly constant basis), their signatures change. Once that happens, the previous signatures are no longer valid, and the technique will have to be changed to recognize the new signatures. Another and more serious problem is that the P2P protocols are now evolving to the point that they either leave no signature or they obfuscate their signatures (e.g. by encryption). This makes it extremely difficult if not impossible to identify P2P traffic using signatures.
  • misbehaving flows are identified based upon their observed behavior. Unlike the prior approaches, they are not identified based upon ancillary factors, such as port numbers and signatures. Because misbehaving flows are identified based upon their observed behavior, and because their behavior cannot be hidden, misbehaving flows cannot avoid detection. Thus, regardless of which protocols they use, or how those protocols try to hide/obfuscate their nature, misbehaving flows can be identified. Once identified/detected, they can be controlled and/or penalized.
  • a flow is processed as follows.
  • One or more information packets belonging to the flow are received and processed.
  • a set of behavioral statistics are maintained for the flow. These behavioral statistics reflect the empirical behavior of the flow.
  • the behavioral statistics include a total byte count (sum of all of the bytes in all of the packets of the flow that have been processed up to the current time), a life duration (how long the flow has been in existence since inception), a flow rate (derived by dividing the total byte count by the life duration of the flow), and an average packet size (derived by dividing the total byte count by the total number of packets in the flow that have been processed).
  • These behavioral statistics are updated as information packets belonging to the flow are processed; thus, they provide an up to date reflection of the flow's behavior.
  • a penalty may be enforced on the flow.
  • the penalty to be enforced is determined based, at least partially, upon the badness factor. This penalty may be an increased drop rate. When enforced on the flow, this increased drop rate causes the information packets belonging to the flow to have a higher probability of being dropped than information packets belonging to other flows that do not exhibit undesirable behavior. Thus, more packets may be dropped from the flow than from other non-misbehaving flows. In one embodiment, this penalty is enforced on the flow only if a congestion condition is encountered. Thus, if there is no congestion, the flow (even if it is exhibiting undesirable behavior) is not penalized.
  • enforcing the penalty on the flow has the effect of correcting the flow's behavior. That is, enforcing the penalty causes the badness factor of the flow to improve (e.g. decrease).
  • enforcing the penalty causes the badness factor of the flow to improve (e.g. decrease).
  • a currently misbehaving flow can be turned into a non-misbehaving flow in the future. Once the flow is no longer misbehaving, it is no longer subject to penalty. In this manner, a misbehaving flow can be identified, penalized, and even rehabilitated in accordance with one embodiment of the present invention.
  • FIG. 1 shows an overview of a network in which one embodiment of the present invention may be implemented.
  • FIG. 2 is a block diagram of a router in which one embodiment of the present invention may be implemented.
  • FIG. 3 is an operational flow diagram showing the operation of a misbehaving flow manager (MFM) in accordance with one embodiment of the present invention.
  • MFM misbehaving flow manager
  • FIG. 4 is a diagram of a sample flow block in accordance with one embodiment of the present invention.
  • FIG. 5 shows one possible function for computing a badness factor for a flow in accordance with one embodiment of the present invention.
  • the network 100 comprises a plurality of routers 102 interconnected to each other by trunks or links in such a way that each router 102 has multiple possible paths to every other router 102 .
  • information from router 102 a may reach router 102 d by going through routers 102 b and 102 c , or routers 102 e and 102 f
  • information from router 102 c may reach router 102 a by going through router 102 b or router 102 e .
  • Interconnecting the routers 102 in this way provides flexibility in determining how information from one router 102 is delivered to another, and makes it possible to route around any failures that might arise.
  • network 100 may be much more complex if so desired, comprising more routers 102 , more connections between the routers 102 , and other components.
  • each router 102 may further be coupled to various machines (not shown), such as clients and servers, from which information originates and to which information is destined. By going through the routers 102 , each of these machines may send information to any of the other machines in the network 100 .
  • this link or trunk may be an optical medium (e.g. an optical fiber), a coaxial cable, or some other type of medium.
  • network 100 may use any type of transport medium.
  • FIG. 2 shows a block diagram of a sample router 102 that may be used to implement one or more of the routers 102 in network 100 .
  • the router 102 comprises a plurality of line cards 202 for coupling the router 102 to one or more of the other routers 102 in the network 100 .
  • line card 202 d may couple router 102 b to router 102 f
  • line card 202 c may couple router 102 b to router 102 c
  • line card 202 b may couple router 102 b to router 102 e
  • line card 202 a may couple router 102 b to router 102 a .
  • the line cards 202 act as the router's 102 interfaces to the rest of the network 100 .
  • the trunks coupled to the line cards 202 are bi-directional; thus, each line card 202 may receive information from another router, or send information to another router.
  • each line card 202 is capable of acting as an ingress line card (to receive information from another router) or an egress line card (to send information to another router). Whether a particular line card 202 is acting as an ingress or an egress line card at any particular time depends upon the flow of network traffic.
  • the switching fabric 204 comprises a plurality of interconnected fabric cards 206 .
  • the switching fabric 204 provides a mechanism for coupling any line card 202 to any other line card 202 within the router 102 so that information can be transported from any ingress line card 202 to any egress line card 202 .
  • the switching fabric 204 routes information through the router 102 and sends it on its way to the next hop (i.e. the next router). Information is thus received and routed by the router 102 .
  • each line card 202 has multiple connections to the switching fabric 204 .
  • the switching fabric 204 provides multiple routes for connecting each line card connection to every other line card connection.
  • each line card 202 has multiple routes to every other line card 202 in the router 102 .
  • one possible route from line card 202 d to line card 202 a may pass through fabric card 206 c , while another route may pass through fabric card 206 b .
  • the switching fabric 204 makes it possible to route around any internal failures that may arise.
  • the router 102 further comprises an application processor 208 .
  • the application processor 208 determines the forwarding paths, and hence, the egress line cards, that can be used to forward information to any particular destination address. Put another way, given a destination address, the application processor 208 determines which line card 202 or line cards are most suitable to act as the egress line card to forward information to that destination address. For example, suppose that the router 102 in FIG. 2 is router 102 b in network 100 , and that the destination is a machine coupled to router 102 d . Suppose further that line card 202 c is coupled to router 102 c and line card 202 d is coupled to router 102 f .
  • the application processor 208 designates these line cards 202 c , 202 d as potential egress line cards for destination router 102 d , with one being designated as the primary egress line card and the other being the alternate.
  • each line card 202 stores the information into a forwarding table residing on the line card 202 . Thereafter, when a line card 202 acts as an ingress line card and receives a set of information, it can use the forwarding table to determine the appropriate egress line card 202 to which to forward the information. Because the egress line card information is predetermined and stored in the forwarding table, the ingress line card simply has to perform a table lookup to determine the proper egress line card. No on-the-fly calculation needs to be performed. Since table lookup operations can be carried out very quickly, the process of determining the proper egress line card requires relatively little time.
  • information is routed from router to router, and from line card 202 to line card 202 , in the form of information packets.
  • Each packet represents a set of information that is sent by a source to a destination.
  • a packet typically comprises a header portion.
  • the header portion contains information that is used by the line cards 202 to determine the next hop for the packet.
  • the information contained in the header portion may differ.
  • the header portion comprises the following sets of information: (1) a source address (i.e. the network address of the entity sending the packet); (2) a source port number; (3) a destination address (i.e.
  • an ingress line card 202 can determine to which egress line card 202 the packet should be routed.
  • a packet also comprises a payload.
  • the payload comprises the actual data that the source is trying to send to the destination.
  • the payload may also include other information, such as information inserted by other protocols (e.g. P2P protocols). This additional information may be needed by the destination to properly process the packet.
  • one or more packets may be grouped into a flow.
  • a flow is a series of packets that are related in some manner.
  • packets are grouped into a flow if they share a sufficient amount of header information. More specifically, in one embodiment, packets belong to the same flow if they have the five tuple in common. Thus, if two or more packets have the same source address, the same source port number, the same destination address, the same destination port number, and the same protocol, they are grouped into the same flow.
  • all of the packets belonging to a flow are received by the same ingress line card 202 and forwarded to the same egress line card 202 .
  • the flows that pass through a router 102 may represent many different types of traffic.
  • the flows may contain web browsing traffic, TCP traffic, P2P traffic, etc.
  • P2P traffic for example, is often considered to be abusive.
  • Other types of traffic may also be considered abusive.
  • the router 102 it is desirable for the router 102 to be able to identify abusive/misbehaving traffic, and to penalize and even rehabilitate that traffic.
  • the line cards 202 of router 102 have been enhanced to give the router 102 such capability.
  • the line cards 202 have been adapted to include a misbehaving flow manager (MFM) 210 for keeping track of flows, determining whether the flows are exhibiting undesirable behavior, and enforcing a penalty on the flows if they are exhibiting undesirable behavior.
  • MFM misbehaving flow manager
  • the MFM 210 of the line cards 202 may be implemented in any desired manner.
  • the functionality of the MFM 210 may be realized by having one or more processors on a line card 202 execute one or more sets of instructions.
  • the MFM 210 may be implemented using hardwired logic components (e.g. in the form of one or more ASIC's on a line card 202 ). These and other implementations are within the scope of the present invention.
  • an MFM 210 is on a line card 202 that is acting as an egress line card (i.e. the line card is receiving packets from an ingress line card and sending packets out to another router).
  • the MFM 210 on a line card may process flows in the same manner even when the line card 202 is acting as an ingress line card (i.e. the line card is receiving packets from another router and sending them to an egress line card).
  • an MFM 210 receives and processes one or more packets belonging to a flow. Processing a packet may, but does not necessarily, involve forwarding the packet to another router. As the packets of a flow are processed, a set of behavioral statistics are maintained (block 302 of FIG. 3 ) for the flow. These behavioral statistics reflect the empirical behavior of the flow.
  • the behavioral statistics include a total byte count (sum of all of the bytes in all of the packets of the flow that have been processed up to the current time), a life duration (how long the flow has been in existence since inception), a flow rate (derived by dividing the total byte count by the life duration of the flow), and an average packet size (derived by dividing the total byte count by the total number of packets in the flow that have been processed).
  • These behavioral statistics are stored by the line card 202 in a flow block associated with the flow, and are updated as information packets belonging to the flow are processed; thus, these behavioral statistics provide an up to date reflection of the flow's behavior.
  • the MFM 210 determines (block 304 ) whether the flow is exhibiting undesirable behavior. In one embodiment, this determination is made by computing a badness factor for the flow. This badness factor is computed based upon the behavioral statistics of the flow, and provides an indication as to whether the flow is exhibiting undesirable behavior. In one embodiment, the badness factor also provides an indication of the degree to which the flow is misbehaving.
  • the MFM 210 enforces (block 306 ) a penalty on the flow.
  • the penalty to be enforced is determined based upon the badness factor. This penalty may be an increased drop rate. When enforced on the flow, this increased drop rate causes the information packets belonging to the flow to have a higher probability of being dropped than information packets belonging to other flows that do not exhibit undesirable behavior. Thus, more packets may be dropped from the flow than from other non-misbehaving flows.
  • the MFM 210 enforces this penalty on the flow only if a congestion condition is encountered. If there is no congestion, the flow (even if it is exhibiting undesirable behavior) is not penalized.
  • enforcing the penalty on the flow has the effect of correcting the flow's behavior. That is, enforcing the penalty causes the badness factor of the flow to improve (e.g. decrease).
  • enforcing the penalty causes the badness factor of the flow to improve (e.g. decrease).
  • a currently misbehaving flow can be turned into a non-misbehaving flow in the future. Once the flow is no longer misbehaving, it is no longer subject to penalty.
  • an MFM 210 on a line card 202 can identify, penalize, and even rehabilitate a misbehaving flow.
  • MFM 210 d receives a packet from the ingress line card 202 b .
  • the MFM 210 d determines whether the packet belongs to an existing flow. In one embodiment, the MFM 210 d makes this determination by processing the five tuple contained in the header portion of the packet (e.g. using a hashing function) to derive a flow ID. The MFM 210 d then determines whether this flow ID is associated with a flow block that is already stored (e.g. in a memory, not shown) on the egress line card 202 d . If so, then the packet is part of an existing flow. If not, then the packet is the first packet of a new flow.
  • a sample flow block 402 in accordance with one embodiment of the present invention is shown in FIG. 4 .
  • the flow block 402 comprises the flow ID (derived by processing the five tuple), and a set of behavioral statistics.
  • the behavioral statistics include a total (T) byte count (sum of all of the bytes in all of the packets of the flow that have been processed up to the current time), a life duration (L) (how long the flow has been in existence since inception), a flow rate (R) (derived by dividing T by L), a number (N) of packets processed up to the current time, an average (A) packet size (derived by dividing T by N), a badness factor (B), and a timestamp of when the flow block 402 was created.
  • the behavioral statistics may include other sets of information as well.
  • the flow block 402 may also include any other information pertinent to the flow.
  • the timestamp value is updated with the current time, and the badness factor is set to a default value of 1.
  • the other behavioral statistics are set to 0.
  • the flow block 402 is then stored on the egress line card 202 d for future reference.
  • the MFM 210 d determines whether to forward the packet to the router to which the egress line card 202 d is coupled. If the link is currently experiencing congestion, the packet may be dropped. In the current example, it will be assumed that the link is not congested; hence, the MFM 210 d forwards the packet to the external router. After doing so, the MFM 210 d updates the behavioral statistics to reflect the packet that was just forwarded. More specifically, the MFM 210 d updates T to include the forwarded packet's byte count, updates L by computing the difference between the current time and the timestamp, updates R by dividing the updated T by the updated L, updates N to include the forwarded packet, and updates A by dividing the updated T by the updated N.
  • the MFM 210 d also computes a badness factor for the flow.
  • the badness factor may be computed using any desired methodology based upon any desired criteria.
  • the badness factor is computed in accordance with the function shown in FIG. 5 , which takes the minimum of six possible values.
  • One possible value is 16, which represents the maximum possible badness factor for any flow.
  • Another possible value is 1, which is the default badness factor for a flow.
  • Other possible values are the quotient of T/T threshold , the quotient of L/L threshold , the quotient of R/R threshold , and the quotient of (A-A threshold )/(MTU-A threshold ).
  • the constants T threshold , L threshold , R threshold , MTU, and A threshold are assigned by an administrator of the router 102 . These values can be adjusted to tune the MFM 210 d for optimal performance.
  • the quotients T/T threshold , L/L threshold , R/R threshold , and (A-A threshold )/(MTU-A threshold ) represent the total byte count component, the duration component, the rate component, and the average packet size component, respectively, of the function. These components are included in the function because it has been found that they provide a measure of whether a flow is misbehaving. For example, it has been found that P2P traffic flows generally have high byte counts, relatively long life, relatively high rates, and relatively large average packet sizes. These characteristics are also found in other types of abusive/misbehaving flows. Thus, these components are manifestations of misbehavior.
  • a badness factor that provides an indication of whether a flow is misbehaving.
  • a badness factor value larger than 1 indicates a misbehaving flow.
  • the badness factor also provides an indication of the degree to which the flow is misbehaving.
  • a flow with a badness factor of 1.8 is misbehaving to a greater degree than a flow with a badness factor of 1.2.
  • the function shown in FIG. 5 is just one possible way of computing the badness factor.
  • the function may be changed, augmented, or even replaced.
  • the administrator of the router 102 may configure the MFM 210 d to not take one or more of the components into account.
  • the administrator may determine that the duration component is not very indicative of a misbehaving flow, and hence, may configure the MFM 210 d to ignore this component. In such a case, the MFM 210 d will not use this component in computing the badness factor.
  • a different and even more sophisticated function one that comprises one or more logical expressions, for example, may be used to compute the badness factor.
  • components other than and/or in addition to those components shown in FIG. 5 may be taken into account in computing the badness factor.
  • the badness factor may be computed in any desired way, using any desired methodology and any desired criteria.
  • the MFM 210 d After the MFM 210 d computes the badness factor, it stores the badness factor into the flow block 402 . The behavioral characteristics of the flow are thus updated to reflect the packet that was just forwarded. The MFM 210 d is now ready to process another packet. The next time the MFM 210 d receives a packet belonging to the same flow, it will recognize that the packet is part of an existing flow; thus, it will not create a new flow block. Instead, it will access the existing flow bock 402 and use and/or update the information contained therein. In the current example, it will be assumed that the MFM 210 d receives many more packets belonging to the flow, and forwards and processes them in the manner described above.
  • the behavioral statistics are repeatedly updated to give rise to a set of relatively mature statistics (which include a relatively mature badness factor) for the flow.
  • the MFM 210 d takes the badness factor of a flow into account only when a congestion condition is encountered (e.g. the outgoing link is experiencing congestion). If there is no such congestion, the MFM 210 d will not enforce a penalty on the flow, regardless of the flow's badness value.
  • the MFM 210 d receives another packet belonging to the flow, but that this time, the egress line card 202 d is experiencing a congestion condition on the outgoing link. In such a case, the MFM 210 d may wish to enforce a penalty on the flow, and the packet may need to be dropped. To determine whether to enforce a penalty on the flow, the MFM 210 d accesses the badness factor stored in the flow block 402 associated with the flow. If the badness factor is less than or equal to a threshold value (which in the current example is 1), then no penalty will be enforced on the flow.
  • a threshold value which in the current example is 1
  • the packet will be subject to the non-misbehaving flow drop rate, which in one embodiment is 0.1 (which means that the packet has a 10% chance of being dropped).
  • the MFM 210 d will impose a penalty on the flow. In one embodiment, this penalty takes the form of an increased drop rate. This increased drop rate causes the packet to be subjected to a higher probability of being dropped than packets belonging to flows that are either not misbehaving or are less misbehaving.
  • the magnitude of the increased drop rate is determined based upon the value of the badness factor.
  • any formula/function may be used to determine the increased drop rate.
  • the increase drop rate rises rapidly relative to the badness factor.
  • the badness factor reaches 2
  • the increased drop rate is already 0.5 (which means that the packet has a 50% probability of being dropped).
  • the badness factor is 3
  • the increased drop rate is 0.7
  • the badness factor is 5
  • This rapid increase in drop rate serves to penalize misbehaving flows early before they become too serious a problem.
  • slower rising drop rates may be used if so desired.
  • the MFM 210 d After the drop rate is determined (whether it is the default drop rate or an increased drop rate), it is enforced by the MFM 210 d . More specifically, the MFM 210 d applies the appropriate probability in determining whether to drop the packet. If, after applying the appropriate drop rate, the packet is not dropped, then the line card 202 d forwards the packet to the external router. After that is done, the MFM 210 d updates the behavioral statistics of the flow in the manner described above to reflect the forwarded packet.
  • the MFM 210 d decides to drop the packet, then the egress line card 202 d will not forward the packet to the external router. In such a case, the MFM 210 d will update the behavioral statistics, but it will do so in a slightly different manner than that described above. Specifically, since the packet was not forwarded, the total byte count T, the number of packets N, and the average packet size A do not change; hence, these values will not be updated. However, the life duration L of the flow (derived by taking the difference between the current time and the timestamp) has changed; thus, it will be updated. Since the rate R depends on L, it will also be updated. In addition, the badness factor will be recomputed. In this manner, the behavioral statistics are updated even when a packet is dropped.
  • the MFM 210 d can cause the badness factor of the flow to improve.
  • the imposition of a penalty on a misbehaving flow has the effect of improving the behavior of the flow. In this manner, not only does the MFM 210 d detect and penalize misbehaving flows, it can also rehabilitate them.
  • a penalty is enforced on a misbehaving flow only when a congestion condition is encountered.
  • a penalty may be enforced on a misbehaving flow even when there is no congestion. That is, any time a flow has a badness factor that indicates undesirable flow behavior, the MFM 210 d can impose an increased drop rate on the flow, and can enforce that drop rate on packets of the flow, regardless of whether there is congestion. That way, the MFM 210 d can manage and control abusive/misbehaving traffic even in the absence of any traffic congestion.

Landscapes

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

Abstract

A mechanism is disclosed for identifying and penalizing misbehaving flows in a network. In one implementation, a set of behavioral statistics are maintained for each flow. These behavioral statistics are updated as information packets belonging to a flow are processed. Based upon these behavioral statistics, a determination is made as to whether a flow is exhibiting undesirable behavior. If so, a penalty is imposed on the flow. In one implementation, this penalty causes packets belonging to the flow to have a higher probability of being dropped than packets belonging to other flows that do not exhibit undesirable behavior. In one implementation, in addition to penalizing the flow, this penalty also has the effect of correcting the flow's behavior such that the flow exhibits less undesirable behavior after the penalty than before. By correcting the flow's behavior, the penalty makes it possible for the flow to become a non-misbehaving flow.

Description

BACKGROUND
With the advent of file sharing applications such as KaZaA, Gnutella, BearShare, and Winny, the amount of peer-to-peer (P2P) traffic on the Internet has grown immensely in recent years. In fact, it has been estimated that P2P traffic now represents about 50-70 percent of the total traffic on the Internet. This is so despite the fact that the number of P2P users is quite small compared to the number of non P2P users. Thus, it appears that most of the bandwidth on the Internet is being consumed by just a minority of the users. For this and other reasons, P2P traffic is viewed by ISP's (Internet service providers) and others as being abusive/misbehaving traffic that should be controlled and penalized.
In order to control P2P traffic, however, it first needs to be identified. Earlier generations of P2P protocols used fixed TCP port numbers for their transmissions. For example, FastTrack used TCP port 1214. This made P2P traffic easy to identify. Current P2P protocols, however, no longer have to use fixed port numbers. Rather, they can be configured to use random dynamic port numbers so that P2P traffic can now be masqueraded as other types of traffic, such as HTTP web browsing and unspecified TCP traffic. As a result, the current P2P protocols have rendered the port-based identification techniques ineffective.
Another technique that has been used to identify P2P traffic involves the use of signatures. Specifically, it was observed that some P2P protocols inserted distinct information into their data packets. Using this distinct information as a signature, it was possible to identify packets that were assembled using those P2P protocols. This technique has several problems. First, it usually is effective for only a relatively short period of time. As the P2P protocols evolve and mutate (which they do on a fairly constant basis), their signatures change. Once that happens, the previous signatures are no longer valid, and the technique will have to be changed to recognize the new signatures. Another and more serious problem is that the P2P protocols are now evolving to the point that they either leave no signature or they obfuscate their signatures (e.g. by encryption). This makes it extremely difficult if not impossible to identify P2P traffic using signatures.
Overall, P2P protocols have gotten quite sophisticated, and the more sophisticated they become, the more difficult it is to identify P2P traffic. Unless P2P traffic can be identified, it cannot be effectively controlled.
SUMMARY
In accordance with one embodiment of the present invention, there is provided a mechanism for effectively identifying and penalizing misbehaving information packet flows in a network. This mechanism may be applied to any type of network traffic including, but certainly not limited to, P2P traffic. In one embodiment, misbehaving flows are identified based upon their observed behavior. Unlike the prior approaches, they are not identified based upon ancillary factors, such as port numbers and signatures. Because misbehaving flows are identified based upon their observed behavior, and because their behavior cannot be hidden, misbehaving flows cannot avoid detection. Thus, regardless of which protocols they use, or how those protocols try to hide/obfuscate their nature, misbehaving flows can be identified. Once identified/detected, they can be controlled and/or penalized.
In one embodiment, a flow is processed as follows. One or more information packets belonging to the flow are received and processed. As the information packets are processed, a set of behavioral statistics are maintained for the flow. These behavioral statistics reflect the empirical behavior of the flow. In one embodiment, the behavioral statistics include a total byte count (sum of all of the bytes in all of the packets of the flow that have been processed up to the current time), a life duration (how long the flow has been in existence since inception), a flow rate (derived by dividing the total byte count by the life duration of the flow), and an average packet size (derived by dividing the total byte count by the total number of packets in the flow that have been processed). These behavioral statistics are updated as information packets belonging to the flow are processed; thus, they provide an up to date reflection of the flow's behavior.
Based at least partially upon the behavioral statistics, a determination is made as to whether the flow is exhibiting undesirable behavior. In one embodiment, this determination may be made by computing a badness factor for the flow. This badness factor is computed based, at least partially, upon the behavioral statistics, and this badness factor provides an indication as to whether the flow is exhibiting undesirable behavior. In one embodiment, the badness factor also provides an indication of the degree to which the flow is misbehaving.
If the flow is exhibiting undesirable behavior, then a penalty may be enforced on the flow. In one embodiment, the penalty to be enforced is determined based, at least partially, upon the badness factor. This penalty may be an increased drop rate. When enforced on the flow, this increased drop rate causes the information packets belonging to the flow to have a higher probability of being dropped than information packets belonging to other flows that do not exhibit undesirable behavior. Thus, more packets may be dropped from the flow than from other non-misbehaving flows. In one embodiment, this penalty is enforced on the flow only if a congestion condition is encountered. Thus, if there is no congestion, the flow (even if it is exhibiting undesirable behavior) is not penalized.
In one embodiment, enforcing the penalty on the flow has the effect of correcting the flow's behavior. That is, enforcing the penalty causes the badness factor of the flow to improve (e.g. decrease). As a result, by application of the penalty, a currently misbehaving flow can be turned into a non-misbehaving flow in the future. Once the flow is no longer misbehaving, it is no longer subject to penalty. In this manner, a misbehaving flow can be identified, penalized, and even rehabilitated in accordance with one embodiment of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an overview of a network in which one embodiment of the present invention may be implemented.
FIG. 2 is a block diagram of a router in which one embodiment of the present invention may be implemented.
FIG. 3 is an operational flow diagram showing the operation of a misbehaving flow manager (MFM) in accordance with one embodiment of the present invention.
FIG. 4 is a diagram of a sample flow block in accordance with one embodiment of the present invention.
FIG. 5 shows one possible function for computing a badness factor for a flow in accordance with one embodiment of the present invention.
DETAILED DESCRIPTION OF EMBODIMENT(S) Network Overview
With reference to FIG. 1, there is shown an overview of a network 100 in which one embodiment of the present invention may be implemented. As shown, the network 100 comprises a plurality of routers 102 interconnected to each other by trunks or links in such a way that each router 102 has multiple possible paths to every other router 102. For example, information from router 102 a may reach router 102 d by going through routers 102 b and 102 c, or routers 102 e and 102 f, and information from router 102 c may reach router 102 a by going through router 102 b or router 102 e. Interconnecting the routers 102 in this way provides flexibility in determining how information from one router 102 is delivered to another, and makes it possible to route around any failures that might arise. For the sake of simplicity, only a few routers 102 are shown in FIG. 1; however, it should be noted that network 100 may be much more complex if so desired, comprising more routers 102, more connections between the routers 102, and other components.
In addition to being coupled to each other, each router 102 may further be coupled to various machines (not shown), such as clients and servers, from which information originates and to which information is destined. By going through the routers 102, each of these machines may send information to any of the other machines in the network 100.
Information is conveyed from one router 102 to another via a physical link or trunk. Depending on the type of network, this link or trunk may be an optical medium (e.g. an optical fiber), a coaxial cable, or some other type of medium. For purposes of the present invention, network 100 may use any type of transport medium.
Router Overview
FIG. 2 shows a block diagram of a sample router 102 that may be used to implement one or more of the routers 102 in network 100. As shown in FIG. 2, the router 102 comprises a plurality of line cards 202 for coupling the router 102 to one or more of the other routers 102 in the network 100. For example, assuming that the router 102 in FIG. 2 is router 102 b in network 100, line card 202 d may couple router 102 b to router 102 f, line card 202 c may couple router 102 b to router 102 c, line card 202 b may couple router 102 b to router 102 e, and line card 202 a may couple router 102 b to router 102 a. Overall, the line cards 202 act as the router's 102 interfaces to the rest of the network 100. In one embodiment, the trunks coupled to the line cards 202 are bi-directional; thus, each line card 202 may receive information from another router, or send information to another router. Put another way, each line card 202 is capable of acting as an ingress line card (to receive information from another router) or an egress line card (to send information to another router). Whether a particular line card 202 is acting as an ingress or an egress line card at any particular time depends upon the flow of network traffic.
To couple the line cards 202 to each other within the router 102, there is provided an internal switching fabric 204. In one embodiment, the switching fabric 204 comprises a plurality of interconnected fabric cards 206. Basically, the switching fabric 204 provides a mechanism for coupling any line card 202 to any other line card 202 within the router 102 so that information can be transported from any ingress line card 202 to any egress line card 202. By transporting information from an ingress line card 202 to an egress line card 202, the switching fabric 204 routes information through the router 102 and sends it on its way to the next hop (i.e. the next router). Information is thus received and routed by the router 102.
To increase the flexibility of the router 102 and to facilitate the process of failure recovery, each line card 202, in one embodiment, has multiple connections to the switching fabric 204. In addition, the switching fabric 204 provides multiple routes for connecting each line card connection to every other line card connection. With such a setup, each line card 202 has multiple routes to every other line card 202 in the router 102. For example, one possible route from line card 202 d to line card 202 a may pass through fabric card 206 c, while another route may pass through fabric card 206 b. By providing multiple routes between the various line cards 202, the switching fabric 204 makes it possible to route around any internal failures that may arise.
In addition to the line cards 202 and the switching fabric 204, the router 102 further comprises an application processor 208. In one embodiment, the application processor 208 determines the forwarding paths, and hence, the egress line cards, that can be used to forward information to any particular destination address. Put another way, given a destination address, the application processor 208 determines which line card 202 or line cards are most suitable to act as the egress line card to forward information to that destination address. For example, suppose that the router 102 in FIG. 2 is router 102 b in network 100, and that the destination is a machine coupled to router 102 d. Suppose further that line card 202 c is coupled to router 102 c and line card 202 d is coupled to router 102 f. In such a case, because the most direct routes to router 102 d are through either router 102 c or 102 f, the most suitable egress line cards for forwarding information to the destination router 102 d are probably line cards 202 c and 202 d. Accordingly, the application processor 208 designates these line cards 202 c, 202 d as potential egress line cards for destination router 102 d, with one being designated as the primary egress line card and the other being the alternate.
Once the egress line card determinations are made by the application processor 208 for each destination address, they are communicated to each of the line cards 202 in the router 102. In turn, each line card 202 stores the information into a forwarding table residing on the line card 202. Thereafter, when a line card 202 acts as an ingress line card and receives a set of information, it can use the forwarding table to determine the appropriate egress line card 202 to which to forward the information. Because the egress line card information is predetermined and stored in the forwarding table, the ingress line card simply has to perform a table lookup to determine the proper egress line card. No on-the-fly calculation needs to be performed. Since table lookup operations can be carried out very quickly, the process of determining the proper egress line card requires relatively little time.
Information Routing
In one embodiment, information is routed from router to router, and from line card 202 to line card 202, in the form of information packets. Each packet represents a set of information that is sent by a source to a destination. To enable it to be properly routed, a packet typically comprises a header portion. The header portion contains information that is used by the line cards 202 to determine the next hop for the packet. Depending upon the routing protocol used, the information contained in the header portion may differ. In one embodiment, the header portion comprises the following sets of information: (1) a source address (i.e. the network address of the entity sending the packet); (2) a source port number; (3) a destination address (i.e. the network address of the entity that is to receive the packet); (4) a destination port number; and (5) an indication of the routing protocol that is to be used. These sets of information may be referred to as the “five tuple”. Using this header information, an ingress line card 202 can determine to which egress line card 202 the packet should be routed.
In addition to the header portion, a packet also comprises a payload. The payload comprises the actual data that the source is trying to send to the destination. In addition to the actual data, the payload may also include other information, such as information inserted by other protocols (e.g. P2P protocols). This additional information may be needed by the destination to properly process the packet.
In one embodiment, one or more packets may be grouped into a flow. For purposes of the present invention, a flow is a series of packets that are related in some manner. In one embodiment, packets are grouped into a flow if they share a sufficient amount of header information. More specifically, in one embodiment, packets belong to the same flow if they have the five tuple in common. Thus, if two or more packets have the same source address, the same source port number, the same destination address, the same destination port number, and the same protocol, they are grouped into the same flow. Usually, barring some failure that requires rerouting, all of the packets belonging to a flow are received by the same ingress line card 202 and forwarded to the same egress line card 202. By grouping packets into flows, it is possible to aggregate individual packets in a meaningful way to enable a higher level understanding of the traffic flowing through the router 102 to be derived.
The flows that pass through a router 102 may represent many different types of traffic. For example, the flows may contain web browsing traffic, TCP traffic, P2P traffic, etc. As noted previously, some traffic is more abusive/misbehaving than others. P2P traffic, for example, is often considered to be abusive. Other types of traffic may also be considered abusive. To make the best use of available resources, and to best control the traffic that passes through the router 102, it is desirable for the router 102 to be able to identify abusive/misbehaving traffic, and to penalize and even rehabilitate that traffic. In one embodiment, the line cards 202 of router 102 have been enhanced to give the router 102 such capability. More specifically, the line cards 202 have been adapted to include a misbehaving flow manager (MFM) 210 for keeping track of flows, determining whether the flows are exhibiting undesirable behavior, and enforcing a penalty on the flows if they are exhibiting undesirable behavior.
For purposes of the present invention, the MFM 210 of the line cards 202 may be implemented in any desired manner. For example, the functionality of the MFM 210 may be realized by having one or more processors on a line card 202 execute one or more sets of instructions. Alternatively, the MFM 210 may be implemented using hardwired logic components (e.g. in the form of one or more ASIC's on a line card 202). These and other implementations are within the scope of the present invention.
Functional Overview of MFM on Line Card
With reference to FIGS. 2 and 3, a functional overview of the operation of an MFM 210 in accordance with one embodiment of the present invention will now be described. In the following discussion, it will be assumed that the MFM 210 is on a line card 202 that is acting as an egress line card (i.e. the line card is receiving packets from an ingress line card and sending packets out to another router). However, it should be noted that the MFM 210 on a line card may process flows in the same manner even when the line card 202 is acting as an ingress line card (i.e. the line card is receiving packets from another router and sending them to an egress line card).
Initially, an MFM 210 receives and processes one or more packets belonging to a flow. Processing a packet may, but does not necessarily, involve forwarding the packet to another router. As the packets of a flow are processed, a set of behavioral statistics are maintained (block 302 of FIG. 3) for the flow. These behavioral statistics reflect the empirical behavior of the flow. In one embodiment, the behavioral statistics include a total byte count (sum of all of the bytes in all of the packets of the flow that have been processed up to the current time), a life duration (how long the flow has been in existence since inception), a flow rate (derived by dividing the total byte count by the life duration of the flow), and an average packet size (derived by dividing the total byte count by the total number of packets in the flow that have been processed). These behavioral statistics are stored by the line card 202 in a flow block associated with the flow, and are updated as information packets belonging to the flow are processed; thus, these behavioral statistics provide an up to date reflection of the flow's behavior.
Based upon the behavioral statistics, the MFM 210 determines (block 304) whether the flow is exhibiting undesirable behavior. In one embodiment, this determination is made by computing a badness factor for the flow. This badness factor is computed based upon the behavioral statistics of the flow, and provides an indication as to whether the flow is exhibiting undesirable behavior. In one embodiment, the badness factor also provides an indication of the degree to which the flow is misbehaving.
If the flow is exhibiting undesirable behavior, then the MFM 210 enforces (block 306) a penalty on the flow. In one embodiment, the penalty to be enforced is determined based upon the badness factor. This penalty may be an increased drop rate. When enforced on the flow, this increased drop rate causes the information packets belonging to the flow to have a higher probability of being dropped than information packets belonging to other flows that do not exhibit undesirable behavior. Thus, more packets may be dropped from the flow than from other non-misbehaving flows. In one embodiment, the MFM 210 enforces this penalty on the flow only if a congestion condition is encountered. If there is no congestion, the flow (even if it is exhibiting undesirable behavior) is not penalized.
In one embodiment, enforcing the penalty on the flow has the effect of correcting the flow's behavior. That is, enforcing the penalty causes the badness factor of the flow to improve (e.g. decrease). As a result, by application of the penalty, a currently misbehaving flow can be turned into a non-misbehaving flow in the future. Once the flow is no longer misbehaving, it is no longer subject to penalty. In this manner, an MFM 210 on a line card 202 can identify, penalize, and even rehabilitate a misbehaving flow.
Sample Operation
The above discussion provides a high level overview of the operation of an MFM 210. To facilitate a complete understanding of the invention, a specific sample operation of an MFM 210 in accordance with one embodiment of the present invention will now be described. In the following discussion, it will be assumed that line card 202 d of FIG. 2 is acting as an egress line card, and that line card 202 b is acting as an ingress line card, which is sending packets to the egress line card 202 d. The following discussion describes the operation of the MFM 210 d on the egress line card 202 d.
Initially, MFM 210 d receives a packet from the ingress line card 202 b. In processing this packet, the MFM 210 d determines whether the packet belongs to an existing flow. In one embodiment, the MFM 210 d makes this determination by processing the five tuple contained in the header portion of the packet (e.g. using a hashing function) to derive a flow ID. The MFM 210 d then determines whether this flow ID is associated with a flow block that is already stored (e.g. in a memory, not shown) on the egress line card 202 d. If so, then the packet is part of an existing flow. If not, then the packet is the first packet of a new flow.
In the present example, it will be assumed that the packet is the first packet of a new flow. In such a case, the MFM 210 d creates a new flow block for the new flow. A sample flow block 402 in accordance with one embodiment of the present invention is shown in FIG. 4. As shown, the flow block 402 comprises the flow ID (derived by processing the five tuple), and a set of behavioral statistics. The behavioral statistics include a total (T) byte count (sum of all of the bytes in all of the packets of the flow that have been processed up to the current time), a life duration (L) (how long the flow has been in existence since inception), a flow rate (R) (derived by dividing T by L), a number (N) of packets processed up to the current time, an average (A) packet size (derived by dividing T by N), a badness factor (B), and a timestamp of when the flow block 402 was created. The behavioral statistics may include other sets of information as well. In addition to the above information, the flow block 402 may also include any other information pertinent to the flow. In one embodiment, when the flow block 402 is initially created, the timestamp value is updated with the current time, and the badness factor is set to a default value of 1. The other behavioral statistics are set to 0. The flow block 402 is then stored on the egress line card 202 d for future reference.
After creating the flow block 402, the MFM 210 d determines whether to forward the packet to the router to which the egress line card 202 d is coupled. If the link is currently experiencing congestion, the packet may be dropped. In the current example, it will be assumed that the link is not congested; hence, the MFM 210 d forwards the packet to the external router. After doing so, the MFM 210 d updates the behavioral statistics to reflect the packet that was just forwarded. More specifically, the MFM 210 d updates T to include the forwarded packet's byte count, updates L by computing the difference between the current time and the timestamp, updates R by dividing the updated T by the updated L, updates N to include the forwarded packet, and updates A by dividing the updated T by the updated N.
In addition, the MFM 210 d also computes a badness factor for the flow. For purposes of the present invention, the badness factor may be computed using any desired methodology based upon any desired criteria. In one possible specific embodiment, the badness factor is computed in accordance with the function shown in FIG. 5, which takes the minimum of six possible values. One possible value is 16, which represents the maximum possible badness factor for any flow. Another possible value is 1, which is the default badness factor for a flow. Other possible values are the quotient of T/Tthreshold, the quotient of L/Lthreshold, the quotient of R/Rthreshold, and the quotient of (A-Athreshold)/(MTU-Athreshold). For purposes of this function, the constants Tthreshold, Lthreshold, Rthreshold, MTU, and Athreshold are assigned by an administrator of the router 102. These values can be adjusted to tune the MFM 210 d for optimal performance.
The quotients T/Tthreshold, L/Lthreshold, R/Rthreshold, and (A-Athreshold)/(MTU-Athreshold) represent the total byte count component, the duration component, the rate component, and the average packet size component, respectively, of the function. These components are included in the function because it has been found that they provide a measure of whether a flow is misbehaving. For example, it has been found that P2P traffic flows generally have high byte counts, relatively long life, relatively high rates, and relatively large average packet sizes. These characteristics are also found in other types of abusive/misbehaving flows. Thus, these components are manifestations of misbehavior. By taking these components into account in the computation of the badness factor, it is possible to derive a badness factor that provides an indication of whether a flow is misbehaving. In one embodiment, a badness factor value larger than 1 indicates a misbehaving flow. In addition to providing an indication of whether a flow is misbehaving, the badness factor also provides an indication of the degree to which the flow is misbehaving. Thus, a flow with a badness factor of 1.8 is misbehaving to a greater degree than a flow with a badness factor of 1.2.
The function shown in FIG. 5 is just one possible way of computing the badness factor. The function may be changed, augmented, or even replaced. For example, the administrator of the router 102 may configure the MFM 210 d to not take one or more of the components into account. For example, the administrator may determine that the duration component is not very indicative of a misbehaving flow, and hence, may configure the MFM 210 d to ignore this component. In such a case, the MFM 210 d will not use this component in computing the badness factor. Also, a different and even more sophisticated function, one that comprises one or more logical expressions, for example, may be used to compute the badness factor. These and other functions may be implemented. In addition, components other than and/or in addition to those components shown in FIG. 5 may be taken into account in computing the badness factor. Overall, for purposes of the present invention, the badness factor may be computed in any desired way, using any desired methodology and any desired criteria.
After the MFM 210 d computes the badness factor, it stores the badness factor into the flow block 402. The behavioral characteristics of the flow are thus updated to reflect the packet that was just forwarded. The MFM 210 d is now ready to process another packet. The next time the MFM 210 d receives a packet belonging to the same flow, it will recognize that the packet is part of an existing flow; thus, it will not create a new flow block. Instead, it will access the existing flow bock 402 and use and/or update the information contained therein. In the current example, it will be assumed that the MFM 210 d receives many more packets belonging to the flow, and forwards and processes them in the manner described above. Thus, the behavioral statistics are repeatedly updated to give rise to a set of relatively mature statistics (which include a relatively mature badness factor) for the flow. In one embodiment, the MFM 210 d takes the badness factor of a flow into account only when a congestion condition is encountered (e.g. the outgoing link is experiencing congestion). If there is no such congestion, the MFM 210 d will not enforce a penalty on the flow, regardless of the flow's badness value.
Suppose now that the MFM 210 d receives another packet belonging to the flow, but that this time, the egress line card 202 d is experiencing a congestion condition on the outgoing link. In such a case, the MFM 210 d may wish to enforce a penalty on the flow, and the packet may need to be dropped. To determine whether to enforce a penalty on the flow, the MFM 210 d accesses the badness factor stored in the flow block 402 associated with the flow. If the badness factor is less than or equal to a threshold value (which in the current example is 1), then no penalty will be enforced on the flow. Hence, the packet will be subject to the non-misbehaving flow drop rate, which in one embodiment is 0.1 (which means that the packet has a 10% chance of being dropped). However, if the badness factor is greater than the threshold value, then the MFM 210 d will impose a penalty on the flow. In one embodiment, this penalty takes the form of an increased drop rate. This increased drop rate causes the packet to be subjected to a higher probability of being dropped than packets belonging to flows that are either not misbehaving or are less misbehaving.
In one embodiment, the magnitude of the increased drop rate is determined based upon the value of the badness factor. For purposes of the present invention, any formula/function may be used to determine the increased drop rate. In one embodiment, the increase drop rate rises rapidly relative to the badness factor. Thus, by the time the badness factor reaches 2, the increased drop rate is already 0.5 (which means that the packet has a 50% probability of being dropped). By the time the badness factor is 3, the increased drop rate is 0.7, and by the time the badness factor is 5, the increased drop rate is over 0.8. This rapid increase in drop rate serves to penalize misbehaving flows early before they become too serious a problem. Of course, slower rising drop rates may be used if so desired.
After the drop rate is determined (whether it is the default drop rate or an increased drop rate), it is enforced by the MFM 210 d. More specifically, the MFM 210 d applies the appropriate probability in determining whether to drop the packet. If, after applying the appropriate drop rate, the packet is not dropped, then the line card 202 d forwards the packet to the external router. After that is done, the MFM 210 d updates the behavioral statistics of the flow in the manner described above to reflect the forwarded packet.
On the other hand, if the MFM 210 d decides to drop the packet, then the egress line card 202 d will not forward the packet to the external router. In such a case, the MFM 210 d will update the behavioral statistics, but it will do so in a slightly different manner than that described above. Specifically, since the packet was not forwarded, the total byte count T, the number of packets N, and the average packet size A do not change; hence, these values will not be updated. However, the life duration L of the flow (derived by taking the difference between the current time and the timestamp) has changed; thus, it will be updated. Since the rate R depends on L, it will also be updated. In addition, the badness factor will be recomputed. In this manner, the behavioral statistics are updated even when a packet is dropped.
An interesting point to note in the above drop situation is that while the total byte count T has not changed, the life duration L has increased. Since the rate R is derived by dividing T by L, this means that the rate R has decreased as a result of dropping the packet. Since R has decreased, the quotient R/Rthreshold has also decreased. Because the quotient R/Rthreshold is one of the components used to determine the badness factor, this decrease could lead to a decrease in the badness factor. Thus, by dropping a packet, the badness factor may be improved (e.g. decreased). As noted above, the penalty imposed on a misbehaving flow is an increased drop rate. By making it more likely that a packet from the misbehaving flow will be dropped, which in turn will cause more packets from the flow to be dropped, the MFM 210 d can cause the badness factor of the flow to improve. Thus, the imposition of a penalty on a misbehaving flow has the effect of improving the behavior of the flow. In this manner, not only does the MFM 210 d detect and penalize misbehaving flows, it can also rehabilitate them.
In the example discussed above, a penalty is enforced on a misbehaving flow only when a congestion condition is encountered. As an alternative, a penalty may be enforced on a misbehaving flow even when there is no congestion. That is, any time a flow has a badness factor that indicates undesirable flow behavior, the MFM 210 d can impose an increased drop rate on the flow, and can enforce that drop rate on packets of the flow, regardless of whether there is congestion. That way, the MFM 210 d can manage and control abusive/misbehaving traffic even in the absence of any traffic congestion. This and other modifications and enhancements are within the scope of the present invention.
At this point, it should be noted that although the invention has been described with reference to one or more specific embodiments, it should not be construed to be so limited. Various modifications may be made by those of ordinary skill in the art with the benefit of this disclosure without departing from the spirit of the invention. Thus, the invention should not be limited by the specific embodiments used to illustrate it but only by the scope of the issued claims and the equivalents thereof.

Claims (44)

1. A machine-implemented method for processing a single flow, the flow comprising a plurality of packets, and the method comprising:
creating a flow block as the first packet of a flow is processed by a single router;
said flow block being configured to store payload-content-agnostic behavioral statistics pertaining to said flow, regardless of the presence or absence of congestion;
said router updating said flow block with the payload-content-agnostic behavioral statistics of each packet belonging to said flow, as each packet belonging to said flow is processed by said router, regardless of the presence or absence of congestion;
said router heuristically determining whether said flow exhibits undesirable behavior by comparing at least one of said payload-content-agnostic behavioral statistics to at least one pre-determined threshold value; and
upon determination by said router that said flow exhibits undesirable behavior, enforcing, relative to at least one packet, a penalty;
wherein the preceding steps are performed on said router without requiring use of inter-router data.
2. A non-transitory computer-readable medium having computer-executable instructions for performing a method to process a single flow, the flow comprising a plurality of packets, and the method comprising:
creating a flow block as the first packet of a flow is processed by a single router;
said flow block being configured to store payload-content agnostic behavioral statistics about said flow, regardless of the presence or absence of congestion;
said router updating said flow block with the flow's behavioral statistics of each packet belonging to said flow, as each packet belonging to said flow is processed by said router, regardless of the presence or absence of congestion;
said router heuristically determining whether said flow is exhibiting undesirable behavior by comparing at least one of said behavioral statistics to at least one pre-determined threshold value; and
upon determination by said router that said flow is exhibiting undesirable behavior, enforcing, relative to at least one packet belonging to said flow, a penalty;
wherein the preceding steps are performed on said router without requiring use of inter-router data.
3. An article of manufacture comprising:
a non-transitory computer-readable medium having stored thereon a data structure;
a first field containing data representing a flow block;
a second field containing data representing payload-content-agnostic behavioral statistics about dropped and non-dropped packets of a flow;
a third field containing data representing pre-determined behavior threshold values;
a fourth field containing data representing the results of a heuristic determination of whether said flow exhibits undesirable behavior determined by comparing said behavioral statistics to said pre-determined threshold values;
a fifth field containing data representing at least one penalty to be enforced against at least one packet upon determination that said flow exhibits undesirable behavior.
4. A machine implemented method for processing a flow, the flow comprising a series of information packets, the method comprising:
maintaining a set of behavioral statistics for the flow, wherein the set of behavioral statistics is updated based on each information packet belonging to the flow, as each information packet belonging to the flow is processed;
determining, based at least partially upon the set of behavioral statistics, whether the flow is exhibiting undesirable behavior, regardless of the presence or absence of congestion; and
in response to a determination that the flow is exhibiting undesirable behavior, enforcing a penalty on the flow.
5. A machine implemented method for processing a flow, the flow comprising a series of information packets, the method comprising:
maintaining a set of behavioral statistics for the flow, wherein the set of behavioral statistics is updated based on each information packet belonging to the flow, as each information packet belonging to the flow is processed, regardless of the presence or absence of congestion;
determining, based at least partially upon the set of behavioral statistics, whether the flow is exhibiting undesirable behavior; and
in response to a determination that the flow is exhibiting undesirable behavior, enforcing a penalty on the flow.
6. The method of claim 1, wherein enforcing the penalty has an effect of correcting the flow's behavior such that the flow exhibits less undesirable behavior.
7. The method of claim 1, wherein enforcing the penalty comprises:
imposing an increased drop rate on the flow such that the information packets belonging to the flow have a higher probability of being dropped than information packets belonging to other flows that do not exhibit undesirable behavior.
8. The method of claim 1, wherein the penalty is enforced when a congestion condition is encountered.
9. A machine implemented method for processing a flow, the flow comprising a series of information packets, the method comprising:
maintaining a set of behavioral statistics for the flow, wherein the set of behavioral statistics is updated based on each information packet belonging to the flow, as each information packet belonging to the flow is processed, regardless of the presence or absence of congestion; and
computing, based at least partially upon the set of behavioral statistics, a badness factor for the flow, wherein the badness factor provides an indication of whether the flow is exhibiting undesirable behavior.
10. The method of claim 9, wherein the badness factor also provides an indication of a degree to which the flow is behaving undesirably.
11. The method of claim 10, further comprising:
determining, based at least partially upon the badness factor, a penalty to impose on the flow.
12. The method of claim 11, further comprising: enforcing the penalty on the flow.
13. The method of claim 12, wherein enforcing the penalty on the flow causes the flow to exhibit less undesirable behavior, thereby, causing the badness factor of the flow to improve.
14. The method of claim 12, wherein the penalty is enforced on the flow when a congestion condition is encountered.
15. The method of claim 12, wherein no penalty is enforced on the flow unless a congestion condition is encountered, regardless of how undesirably the flow is behaving.
16. The method of claim 12, wherein the penalty is determined and enforced on the flow even when no congestion condition is encountered.
17. The method of claim 12, wherein determining the penalty comprises:
determining an increased drop rate to impose on one or more information packets belonging to the flow.
18. The method of claim 17, wherein enforcing the penalty comprises:
imposing the increased drop rate on the flow such that the information packets belonging to the flow have a higher probability of being dropped than information packets belonging to other flows that do not exhibit undesirable behavior.
19. The method of claim 9, wherein the set of behavioral statistics comprises a measure T of how much total information has been contained in all of the information packets belonging to the flow that have been forwarded up to a current point in time.
20. The method of claim 9, wherein the set of behavioral statistics comprises a measure L of how long the flow has been in existence up to a current point in time.
21. The method of claim 20, wherein the set of behavioral statistics comprises a rate R of information transfer for the flow, wherein R is derived by dividing T by L.
22. The method of claim 9, wherein the set of behavioral statistics comprises an average size for the information packets belonging to the flow.
23. The method of claim 9, wherein maintaining the set of behavioral statistics comprises:
receiving a particular information packet belonging to the flow;
determining whether to forward the particular information packet to a destination; and
in response to a determination to forward the particular information packet to the destination, updating the set of behavioral statistics to reflect processing of the particular information packet.
24. The method of claim 9, wherein maintaining the set of behavioral statistics comprises:
receiving a particular information packet belonging to the flow; and
updating the set of behavioral statistics to reflect processing of the particular information packet, regardless of whether the particular information packet is discarded or forwarded to a destination.
25. A misbehaving flow manager (MFM) for processing a flow, the flow comprising a series of information packets, the MFM comprising:
means for maintaining a set of behavioral statistics for the flow, wherein the set of behavioral statistics is updated based on each information packet belonging to the flow, as each information packet belonging to the flow is processed, regardless of the presence or absence of congestion;
means for determining, based at least partially upon the set of behavioral statistics, whether the flow is exhibiting undesirable behavior; and
means for enforcing, in response to a determination that the flow is exhibiting undesirable behavior, a penalty on the flow.
26. The MFM of claim 25, wherein enforcing the penalty has an effect of correcting the flow's behavior such that the flow exhibits less undesirable behavior.
27. The MFM of claim 25, wherein the means for enforcing the penalty comprises:
means for imposing an increased drop rate on the flow such that the information packets belonging to the flow have a higher probability of being dropped than information packets belonging to other flows that do not exhibit undesirable behavior.
28. The MFM of claim 25, wherein the penalty is enforced when a congestion condition is encountered.
29. A misbehaving flow manager (MFM) for processing a flow, the flow comprising a series of information packets, the MFM comprising:
means for maintaining a set of behavioral statistics for the flow, wherein the set of behavioral statistics is updated based on each information packet belonging to the flow, as each information packet belonging to the flow is processed, regardless of the presence or absence of congestion; and
means for computing, based at least partially upon the set of behavioral statistics, a badness factor for the flow, wherein the badness factor provides an indication of whether the flow is exhibiting undesirable behavior.
30. The MFM of claim 29, wherein the badness factor also provides an indication of a degree to which the flow is behaving undesirably.
31. The MFM of claim 30, further comprising:
means for determining, based at least partially upon the badness factor, a penalty to impose on the flow.
32. The MFM of claim 31, further comprising: means for enforcing the penalty on the flow.
33. The MFM of claim 32, wherein enforcing the penalty on the flow causes the flow to exhibit less undesirable behavior, thereby, causing the badness factor of the flow to improve.
34. The MFM of claim 32, wherein the penalty is enforced on the flow when a congestion condition is encountered.
35. The MFM of claim 32, wherein no penalty is enforced on the flow unless a congestion condition is encountered, regardless of how undesirably the flow is behaving.
36. The MFM of claim 32, wherein the penalty is determined and enforced on the flow even when no congestion condition is encountered.
37. The MFM of claim 32, wherein the means for determining the penalty comprises:
means for determining an increased drop rate to impose on one or more information packets belonging to the flow.
38. The MFM of claim 37, wherein the means for enforcing the penalty comprises:
means for imposing the increased drop rate on the flow such that the information packets belonging to the flow have a higher probability of being dropped than information packets belonging to other flows that do not exhibit undesirable behavior.
39. The MFM of claim 29, wherein the set of behavioral statistics comprises a measure T of how much total information has been contained in all of the information packets belonging to the flow that have been forwarded up to a current point in time.
40. The MFM of claim 29, wherein the set of behavioral statistics comprises a measure L of how long the flow has been in existence up to a current point in time.
41. The MFM of claim 40, wherein the set of behavioral statistics comprises a rate R of information transfer for the flow, wherein R is derived by dividing T by L.
42. The MFM of claim 29, wherein the set of behavioral statistics comprises an average size for the information packets belonging to the flow.
43. The MFM of claim 29, wherein the means for maintaining the set of behavioral statistics comprises:
means for receiving a particular information packet belonging to the flow;
means for determining whether to forward the particular information packet to a destination; and
means for updating, in response to a determination to forward the particular information packet to the destination, the set of behavioral statistics to reflect processing of the particular information packet.
44. The MFM of claim 29, wherein the means for maintaining the set of behavioral statistics comprises:
means for receiving a particular information packet belonging to the flow; and
means for updating the set of behavioral statistics to reflect processing of the particular information packet, regardless of whether the particular information packet is discarded or forwarded to a destination.
US11/022,599 2004-12-22 2004-12-22 Mechanism for identifying and penalizing misbehaving flows in a network Expired - Fee Related US8243593B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/022,599 US8243593B2 (en) 2004-12-22 2004-12-22 Mechanism for identifying and penalizing misbehaving flows in a network
PCT/US2005/046092 WO2006069044A2 (en) 2004-12-22 2005-12-20 Mechanism for identifying and penalizing misbehaving flows in a network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/022,599 US8243593B2 (en) 2004-12-22 2004-12-22 Mechanism for identifying and penalizing misbehaving flows in a network

Publications (2)

Publication Number Publication Date
US20060133280A1 US20060133280A1 (en) 2006-06-22
US8243593B2 true US8243593B2 (en) 2012-08-14

Family

ID=36595594

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/022,599 Expired - Fee Related US8243593B2 (en) 2004-12-22 2004-12-22 Mechanism for identifying and penalizing misbehaving flows in a network

Country Status (2)

Country Link
US (1) US8243593B2 (en)
WO (1) WO2006069044A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9485164B2 (en) 2012-05-14 2016-11-01 Sable Networks, Inc. System and method for ensuring subscriber fairness using outlier detection

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8141156B1 (en) * 2005-12-28 2012-03-20 At&T Intellectual Property Ii, L.P. Method and apparatus for mitigating routing misbehavior in a network
EP2174450B1 (en) 2007-07-02 2016-10-12 Telecom Italia S.p.A. Application data flow management in an ip network
US8024473B1 (en) 2007-07-19 2011-09-20 Mcafee, Inc. System, method, and computer program product to automate the flagging of obscure network flows as at least potentially unwanted
US20090073878A1 (en) * 2007-08-31 2009-03-19 Kenneth Gustav Carlberg Usage based queuing with accounting for wireless access points
US8170038B2 (en) * 2009-05-27 2012-05-01 International Business Machines Corporation Two-layer switch apparatus to avoid first layer inter-switch link data traffic in steering packets through bump-in-the-wire service applications
US8289977B2 (en) 2009-06-10 2012-10-16 International Business Machines Corporation Two-layer switch apparatus avoiding first layer inter-switch traffic in steering packets through the apparatus
WO2013105991A2 (en) * 2011-02-17 2013-07-18 Sable Networks, Inc. Methods and systems for detecting and mitigating a high-rate distributed denial of service (ddos) attack
US8982702B2 (en) * 2012-10-30 2015-03-17 Cisco Technology, Inc. Control of rate adaptive endpoints

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167041A (en) * 1998-03-17 2000-12-26 Afanador; J. Abraham Switch with flexible link list manager for handling ATM and STM traffic
US6252848B1 (en) * 1999-03-22 2001-06-26 Pluris, Inc. System performance in a data network through queue management based on ingress rate monitoring
US6310881B1 (en) * 1998-10-20 2001-10-30 Terabeam Corporation Method and apparatus for network control
US20020032717A1 (en) * 2000-09-08 2002-03-14 The Regents Of The University Of Michigan Method and system for profiling network flows at a measurement point within a computer network
US20050141426A1 (en) * 2003-12-31 2005-06-30 Broadcom Corporation System and method for controlling packet transmission using a plurality of buckets
US6934250B1 (en) * 1999-10-14 2005-08-23 Nokia, Inc. Method and apparatus for an output packet organizer
US20050226149A1 (en) * 2001-01-25 2005-10-13 Van Jacobson Method of detecting non-responsive network flows
US7113990B2 (en) * 2002-05-29 2006-09-26 Distributed Management Information Systems, Inc. System and process for allocating flow capacity in a network
US20100110889A1 (en) * 2003-12-03 2010-05-06 Hitachi, Ltd. Policing device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9602027D0 (en) * 1996-02-01 1996-04-03 Madge Networks Ltd Flow control in a cell switched communication system
US5748901A (en) * 1996-05-21 1998-05-05 Ramot University Authority Ltd. Flow control algorithm for high speed networks
US5991268A (en) * 1997-07-07 1999-11-23 Nortel Networks Corporation Flow control mechanism of ABR traffic in ATM networks
WO2002029427A1 (en) * 2000-10-02 2002-04-11 Zvolve Systems, Inc. Real time traffic engineering of data networks
US7336613B2 (en) * 2000-10-17 2008-02-26 Avaya Technology Corp. Method and apparatus for the assessment and optimization of network traffic
US7020147B1 (en) * 2001-11-13 2006-03-28 Terabeam Corporation Network traffic director system having modules that implement merit or penalty functions involving stochastic changes in network topology

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167041A (en) * 1998-03-17 2000-12-26 Afanador; J. Abraham Switch with flexible link list manager for handling ATM and STM traffic
US6310881B1 (en) * 1998-10-20 2001-10-30 Terabeam Corporation Method and apparatus for network control
US6252848B1 (en) * 1999-03-22 2001-06-26 Pluris, Inc. System performance in a data network through queue management based on ingress rate monitoring
US6934250B1 (en) * 1999-10-14 2005-08-23 Nokia, Inc. Method and apparatus for an output packet organizer
US20020032717A1 (en) * 2000-09-08 2002-03-14 The Regents Of The University Of Michigan Method and system for profiling network flows at a measurement point within a computer network
US20050226149A1 (en) * 2001-01-25 2005-10-13 Van Jacobson Method of detecting non-responsive network flows
US7113990B2 (en) * 2002-05-29 2006-09-26 Distributed Management Information Systems, Inc. System and process for allocating flow capacity in a network
US20100110889A1 (en) * 2003-12-03 2010-05-06 Hitachi, Ltd. Policing device
US20050141426A1 (en) * 2003-12-31 2005-06-30 Broadcom Corporation System and method for controlling packet transmission using a plurality of buckets

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9485164B2 (en) 2012-05-14 2016-11-01 Sable Networks, Inc. System and method for ensuring subscriber fairness using outlier detection
US9774501B2 (en) 2012-05-14 2017-09-26 Sable Networks, Inc. System and method for ensuring subscriber fairness using outlier detection

Also Published As

Publication number Publication date
WO2006069044A2 (en) 2006-06-29
US20060133280A1 (en) 2006-06-22
WO2006069044A3 (en) 2007-05-10

Similar Documents

Publication Publication Date Title
US8085775B1 (en) Identifying flows based on behavior characteristics and applying user-defined actions
US9825866B2 (en) Selecting among multiple concurrently active paths through a network
US10200300B2 (en) Maintaining named data networking (NDN) flow balance with highly variable data object sizes
WO2006069044A2 (en) Mechanism for identifying and penalizing misbehaving flows in a network
CN109691037B (en) Method and system for data center load balancing
Thaler et al. Multipath issues in unicast and multicast next-hop selection
US8259585B1 (en) Dynamic link load balancing
US8223634B2 (en) Mechanism for implementing load balancing in a network
US8942106B2 (en) Method and apparatus for route optimization enforcement and verification
US8111649B1 (en) Method and apparatus for enabling a host to influence how a packet is routed through a network
US8161145B2 (en) Method for managing of denial of service attacks using bandwidth allocation technology
JP4988632B2 (en) Packet relay device and traffic monitoring system
KR102455886B1 (en) Service Feature Chaining Congestion Feedback
Bedi et al. Mitigating congestion based DoS attacks with an enhanced AQM technique
JP5178573B2 (en) Communication system and communication method
WO2008134049A1 (en) Lightweight bandwidth-management scheme for elastic traffic
Tam et al. Leveraging performance of multiroot data center networks by reactive reroute
Manzoor et al. CHOKeD: fair active queue management
CN117714378A (en) Data transmission method, device, node and system
Molle et al. Short-circuiting the congestion signaling path for AQM algorithms using reverse flow matching
Hanlin et al. Improving fairness of red aided by lightweight flow information
Imura et al. Reactive load balancing during failure state in IP fast reroute schemes
Fesehaye Efficient Network (Internet) Control Protocols and their Convergence

Legal Events

Date Code Title Description
AS Assignment

Owner name: CASPIAN NETWORKS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NATCHU, VISHNU;REEL/FRAME:016138/0366

Effective date: 20041216

AS Assignment

Owner name: VENTURE LENDING & LEASING IV, INC., CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:CASPIAN NETWORKS, INC.;REEL/FRAME:018243/0363

Effective date: 20060621

AS Assignment

Owner name: CASPIAN NETWORKS, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:VENTURE LENDING & LEASING IV, INC.;REEL/FRAME:022991/0484

Effective date: 20060921

Owner name: SABLE NETWORKS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOBILE CONVERGENCE COMPANY, LTD.;REEL/FRAME:022992/0914

Effective date: 20080328

Owner name: MOBILE CONVERGENCE, LTD., KOREA, DEMOCRATIC PEOPLE

Free format text: NUNC PRO TUNC ASSIGNMENT;ASSIGNOR:CASPIAN NETWORKS, INC.;REEL/FRAME:022992/0829

Effective date: 20080814

ZAAA Notice of allowance and fees due

Free format text: ORIGINAL CODE: NOA

ZAAB Notice of allowance mailed

Free format text: ORIGINAL CODE: MN/=.

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAT HOLDER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: LTOS); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

FEPP Fee payment procedure

Free format text: 7.5 YR SURCHARGE - LATE PMT W/IN 6 MO, SMALL ENTITY (ORIGINAL EVENT CODE: M2555); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2552); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 8

IPR Aia trial proceeding filed before the patent and appeal board: inter partes review

Free format text: TRIAL NO: IPR2020-01712

Opponent name: PALO ALTO NETWORKS, INC., DELL TECHNOLOGIES INC., DENALI INTERMEDIATE INC., DELL INC., EMC CORPORATION, VMWARE, INC., JUNIPER NETWORKS, INC., HEWLETT PACKARD ENTERPRISE COMPANY, AND ARUBA NETWORKS, INC.

Effective date: 20201002

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

IPR Aia trial proceeding filed before the patent and appeal board: inter partes review

Free format text: TRIAL NO: IPR2021-00909

Opponent name: CLOUDFLARE, INC., SONICWALL INC., AND SONICWALL US HOLDINGS INC.

Effective date: 20210507

IPR Aia trial proceeding filed before the patent and appeal board: inter partes review

Free format text: TRIAL NO: IPR2022-00228

Opponent name: SPLUNK, INC., AND CRITICAL START, INC.

Effective date: 20211124

DC Disclaimer filed

Free format text: DISCLAIM THE FOLLOWING COMPLETE CLAIMS 1, 2, 4-8, 14-16, 25-28,

Effective date: 20220304

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

IPRC Trial and appeal board: inter partes review certificate

Kind code of ref document: K1

Free format text: INTER PARTES REVIEW CERTIFICATE; TRIAL NO. IPR2021-00909, MAY 7, 2021; TRIAL NO. IPR2022-00228, NOV. 24, 2021 INTER PARTES REVIEW CERTIFICATE FOR PATENT 8,243,593, ISSUED AUG. 14, 2012, APPL. NO. 11/022,599, DEC. 22, 2004 INTER PARTES REVIEW CERTIFICATE ISSUED AUG. 22, 2024

Effective date: 20240822

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

DC Disclaimer filed

Free format text: DISCLAIM THE FOLLOWING COMPLETE CLAIMS 1-44 OF SAID PATENT

Effective date: 20240520

FP Lapsed due to failure to pay maintenance fee

Effective date: 20240814