throbber

`
`
`
`
`
`
`
`US008243593B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US 8,243,593 B2
`(10) Patent No.:
`a2) United States Patent
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(45) Date of Patent:
`Aug. 14, 2012
`Natchu
`
`
`
`
`
`(56)
`
`
`
`
`References Cited
`
`
`
`
`
`
`
`
`(54) MECHANISM FOR IDENTIFYING AND
`PENALIZING MISBEHAVING FLOWSIN A
`
`
`
`
`
`NETWORK
`
`
`(75)
`
`
`
`Inventor: Vishnu Natchu, Santa Clara, CA (US)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(73) Assignee: Sable Networks, Inc., Santa Clara, CA
`(US)
`
`
`
`
`
`
`(*) Notice:
`
`
`
`
`
`
`
`
`
`
`Subject to any disclaimer, the term ofthis
`
`
`
`
`
`
`
`patent is extended or adjusted under 35
`U.S.C. 154(b)
`by 1098 days.
`(b)
`by
`y
`
`
`
`
`
`(21) Appl. No.: 11/022,599
`
`
`
`
`(22)
`Filed:
`Dee. 22, 2004
`
`
`
`
`
`
`
`
`
`(65)
`
`
`
`Prior Publication Data
`
`
`US 2006/0133280 Al
`Jun. 22, 2006
`
`
`
`
`
`
`
`U.S. PATENT DOCUMENTS
`
`
`
`
`
`
`
`
`
`
`6,167,041 A * 12/2000 Afanador bese eeeeeseensenseeee 370/353
`
`
`
`
`
`
`
`6,252,848 B1*
`6/2001 Skirmont «0... 370/229
`6,310,881 B1* 10/2001 Zikan etal. oo. . 370/401
`
`
`
`
`
`
`
`
`
`6,934,250 BI1*
`8/2005 Kejriwaletal. oo... 370/229
`
`
`
`
`
`
`
`
`7,113,990 B2*
`9/2006 Scifres et al. ou. 709/224
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`2002/0032717 Al*
`3/2002 Malanetal. wo. 709/105
`2005/0141426 AL*
`6/2005 Hou wees 370/235
`
`
`
`
`
`
`
`2005/0226149 A1* 10/2005 Jacobsonet al. ww... 370/229
`
`
`
`
`
`
`
`
`5/2010 Yazakietal. oo... 370/230
`2010/0110889 AL1*
`
`
`
`
`
`
`
`
`* cited by examiner
`
`
`
`
`Primary Examiner — Xavier Szewai Wong
`
`
`
`
`
`(7A)Attorney, agent vr arn West & Associates, A PC;
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ABSTRACT
`(67)
`
`
`
`
`
`
`
`
`
`A mechanism is disclosedfor identifying and penalizing mis-
`behaving 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 behav-
`ioral statistics, a determination is made as to whethera flow is
`Int.Cl
`51)
`
`
`
`
`
`
`
`
`
`
`2006.01
`OD) Gt01R 31/08
`exhibitingundesirablebehavior.Ifso, apenalty is imposedon
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(
`01)
`the flow. In one implementation, this penalty causes packets
`
`
`
`
`
`
`
`
`
`
`
`
`
`(2006.01)
`belonging to the flow to have a higher probability of being
`GO06F 11/00
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(2006.01)
`dropped than packets belonging to other flows that do not
`GO8C 15/00
`
`
`
`
`
`
`
`
`
`
`
`
`
`(2006.01)
`exhibit undesirable behavior. In one implementation, in addi-
`HO4S 1/16
`
`
`
`
`
`
`
`
`
`(2006.01)
`tion to penalizing the flow, this penalty also has the effect of
`HO4J 3/14
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(2006.01)
`correcting the flow’s behavior such thatthe flow exhibits less
`HOAL 1/00
`
`
`
`
`
`
`
`
`
`
`:
`undesirable behavior alter the
`penalty
`than before.
`cor-
`
`
`
`(2006.01)
`desirable
`behavior
`the penalty than
`before.
`HOAL 12/26
`after
`By
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(52) US. CD. cocecccecceccccecssessessssssseessesseessnessseesene 370/229_recting the flow’s behavior, the penalty makesit possible for
`
`
`
`
`
`(58) Field of Classification Search......... 370/229-236__the How to become a non-misbehaving flow.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`See application file for complete search history.
`44 Claims, 5 Drawing Sheets
`
`
`
`TO/FROM
`
`OTHER
`
`ROUTER
`
`
`TO/FROM
`
`
`OTHER
`
`ROUTER
`
`PROCESSOR
`
`
`
`TO/FROM
`OTHER
`
`ROUTER
`
`
`
`TO/FROM
`
`OTHER
`
`ROUTER
`
`ROUTER
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SWITCHING
`
`FABRIC
`206a
`
`
`FABRIC
`
`CARD
`
`
`206b
`
`
`
`>
`
`
`FABRIC
`
`CARD
`
`:
`> 206
`
`
`
`FABRIC
`
`CARD
`
`
`
`
`APPLICATION
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Splunk Inc.—Exhibit 1001 Page 1
`
`Splunk Inc. Exhibit 1001 Page 1
`
`

`

`
`U.S. Patent
`
`
`
`
`
`Aug.14, 2012
`
`
`
`
`
`Sheet 1 of 5
`
`
`
`US 8,243,593 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`lPup
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SplunkInc.
`
`Exhibit 1001
`
`Page 2
`
`Splunk Inc. Exhibit 1001 Page 2
`
`

`

`
`
`
`U.S. Patent
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Aug. 14, 2012
`
`
`
`Sheet 2 of 5
`
`
`
`
`
`US 8,243,593 B2
`
`
`
`
`
`WOusd/OL
`
`YySaLNOY
`
`YSHLO
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`WOYS/OL
`
`Y4aLNOY
`
`YSHLO
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`YSaLNOY
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`YOSS390Nd
`
`
`
`
`
`YSHLO
`
`YySLNouy
`
`WOYs/OL
`
`WOYs/OL
`
`YSHLO
`
`daLNow
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`cOL
`
`2902
`
`ONIHOLIMS
`
`oluavs
`
`Oluavs
`
`
`
`duvo
`
`
`
`
`
`
`
`qgoz:
`
`
`
`
`
`
`og02¢
`
`
`
`dYVO
`
`
`
`oldavs
`
`
`
`Oldavs
`
`duvo
`
`
`
`NOILVONdd¥
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CPip
`
`
`
`
`
`Splunk Inc. Exhibit 1001 Page 3
`
`

`

`
`U.S. Patent
`
`
`
`
`
`Aug. 14, 2012
`
`
`
`
`
`Sheet 3 of 5
`
`
`
`US 8,243,593 B2
`
`
`
`
`
`MAINTAIN BEHAVIORAL
`
`
`
`STATISTICS FOR FLOW
`
`BEHAVIOR
`
`
`
`
`
`
`
`
`
`DETERMINE WHETHER
`
`
`
`FLOW IS EXHIBITING
`
`
`UNDESIRABLE BEHAVIOR
`
`
`
`
`
`ENFORCE PENALTY ON
`
`
`
`
`FLOW IF FLOW IS
`
`
`EXHIBITING UNDESIRABLE
`
`
`
`Fig. 3
`
`
`
`Splunk Inc.
`
`Exhibit1001
`
`Page 4
`
`Splunk Inc. Exhibit 1001 Page 4
`
`

`

`
`U.S. Patent
`
`
`
`
`
`Aug. 14, 2012
`
`
`
`
`
`
`Sheet 4 of 5
`
`
`
`US 8,243,593 B2
`
`
`
`
`
`FLOW ID
`
`
`
`BEHAVIORAL STATISTICS
`
`OTHER FLOW INFORMATION
`
`
`
`
`
`
`* TOTAL (T) BYTE COUNT
`
`
`
`
`
`
`* LIFE (L) DURATION SINCE INCEPTION
`
`
`
`
`
`
`* RATE (R) OF INFORMATION FLOW
`
`
`
`
`
`
`* NUMBER (N) OF PACKETS PROCESSED
`
`
`
`
`
`- AVERAGE (A) PACKET SIZE
`
`
`
`
`* BADNESS FACTOR(B)
`
`
`+ TIMESTAMP
`
`
`
`* OTHER
`
`
`
`
`
`
`
`
`Fig. 4
`
`
`
`Splunk Inc.
`
`Exhibit1001
`
`Page 5
`
`Splunk Inc. Exhibit 1001 Page 5
`
`

`

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug. 14, 2012
`
`Sheet 5 of 5
`
`
`
`US 8,243,593 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
` QIOHSSYHL|LNANOdWODLNNODSLAPWLOL—T_
`
`
`
`
`
`YOLOVISSSNQVEWAWIXVW9}
`
`
`
`
`
`YOLOVASSANGVELINVASC|
`
`
`
`LNANOdWO9SSLVa—
`
`QTOHS3YHL
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CIOHSSYHL
`
`
`
`
`
`
`
`
`
`INANOdWODNOILVYNG—T
`
`
`NIW=YOLOVASSSNQVE
`
`
`
`y-yLaMOVdADVYSAVCnOHSSUHL
`
`
`
`INSNOdWOO3ZIS=GIOHSSYHLW-NLIN
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`¢Ap
`
`Splunk Inc. Exhibit 1001 Page 6
`
`

`

`
`
`US 8,243,593 B2
`
`
`
`
`1
`MECHANISM FOR IDENTIFYING AND
`
`
`
`
`PENALIZING MISBEHAVING FLOWSIN A
`
`
`
`
`
`NETWORK
`
`
`BACKGROUND
`
`
`
`
`
`
`
`
`
`
`
`
`
`With the adventoffile 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 numberofnon P2Pusers.
`
`
`
`
`
`
`
`
`
`
`
`
`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, P2Ptraffic 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
`
`
`
`
`
`
`
`
`TCPport numbersfor their transmissions. For example, Fast-
`
`
`
`
`
`
`
`
`
`
`
`Track used TCP port 1214. This made P2Ptraffic 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 TCPtraffic. As a result, the current
`
`
`
`
`
`
`
`P2P protocols have rendered the port-based identification
`
`
`techniques ineffective.
`
`
`
`
`
`
`
`
`
`
`Another technique that has been usedto identify P2Ptraffic
`
`
`
`
`
`
`
`
`
`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 signa-
`
`
`
`
`
`
`
`
`
`ture, it was possible to identify packets that were assembled
`
`
`
`
`
`
`
`
`using those P2P protocols. This technique has several prob-
`
`
`
`
`
`
`
`
`
`
`
`lems. 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 moreserious prob-
`
`
`
`
`
`
`
`
`
`
`
`
`lem is that the P2P protocols are now evolvingto the point that
`
`
`
`
`
`
`
`
`
`they either leave no signature or they obfuscate their signa-
`
`
`
`
`
`
`
`
`
`tures (e.g. by encryption). This makes it extremely difficult if
`
`
`
`
`
`
`
`
`not impossible to identify P2P traffic using signatures.
`
`
`
`
`
`
`
`
`Overall, P2P protocals have gotten quite sophisticated, and
`
`
`
`
`
`
`
`
`
`
`
`the more sophisticated they become, the moredifficult it is to
`
`
`
`
`
`
`
`
`
`
`identify P2P traffic. Unless P2P traffic can be identified, it
`
`
`
`
`cannot be effectively controlled.
`
`
`
`
`
`
`
`SUMMARY
`
`
`
`
`
`
`
`
`
`
`
`In accordance with one embodimentof the present inven-
`
`
`
`
`
`
`
`
`tion, there is provided a mechanism foreffectively identifying
`
`
`
`
`
`
`
`
`and penalizing misbehaving information packet flows in a
`
`
`
`
`
`
`
`
`
`
`network. This mechanism may be applied to any type of
`
`
`
`
`
`
`
`
`
`networktraffic including, but certainly not limited to, P2P
`
`
`
`
`
`
`
`
`traffic. In one embodiment, misbehaving flowsare identified
`
`
`
`
`
`
`
`
`based upon their observed behavior. Unlike the prior
`
`
`
`
`
`
`
`
`approaches, they are not identified based upon ancillary fac-
`
`
`
`
`
`
`
`
`tors, suchas port numbers and signatures. Because misbehav-
`
`
`
`
`
`
`
`
`
`ing flows are identified based upon their observed behavior,
`
`
`
`
`
`
`
`
`and because their behavior cannot be hidden, misbehaving
`
`
`
`
`
`
`
`
`flows cannot avoid detection. Thus, regardless of which pro-
`
`
`
`
`
`
`
`
`
`tocols they use, or how those protocols try to hide/obfuscate
`
`
`
`
`
`
`
`
`their nature, misbehaving flows can be identified. Once iden-
`
`
`
`
`
`
`
`tified/detected, they can be controlled and/or penalized.
`
`
`
`
`
`
`
`20
`
`
`
`25
`
`
`
`
`
`
`
`40
`
`
`
`45
`
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`
`2
`
`
`
`
`
`
`
`
`
`
`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
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`behavioralstatistics reflect the empirical behaviorofthe flow.
`In one embodiment, the behavioral statistics include a total
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`byte count (sum ofall 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 theflow has beenin existencesince incep-
`
`
`
`
`
`
`
`
`
`
`
`
`tion), 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
`
`
`
`
`
`
`
`
`
`
`ofpacketsin the flow that have been processed). These behav-
`
`
`
`
`
`
`
`
`ioral 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 behavioralstatistics, 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 leastpartially, upon the
`
`
`
`
`
`
`
`
`behavioralstatistics, and this badness factor provides an indi-
`
`
`
`
`
`
`
`
`
`cation as to whetherthe flow is exhibiting undesirable behav-
`
`
`
`
`
`
`
`
`
`ior. 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 pen-
`
`
`
`
`
`
`
`
`
`
`
`alty 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 onthe flow,this increased drop rate
`
`
`
`
`
`
`
`
`
`
`causes the information packets belonging to the flow to have
`
`
`
`
`
`
`
`
`a higher probability of being dropped than information pack-
`
`
`
`
`
`
`
`
`
`
`ets 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-misbe-
`
`
`
`
`
`
`
`
`
`
`
`having flow in the future. Once the flow is no longer misbe-
`
`
`
`
`
`
`
`
`
`
`
`having, it is no longer subject to penalty. In this manner, a
`
`
`
`
`
`
`
`
`
`misbehavingflow can beidentified, penalized, and even reha-
`
`
`
`
`
`
`
`
`bilitated in accordance with one embodimentof the present
`invention.
`
`
`
`
`
`
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`
`
`
`FIG. 1 shows an overview of a network in which one
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`embodimentof the present invention may be implemented.
`
`
`
`
`
`FIG.2 is a block diagram of a router in which one embodi-
`
`
`
`
`
`
`
`
`ment of the present invention may be implemented.
`
`
`
`
`
`
`
`
`
`FIG. 3 is an operational flow diagram showing the opera-
`
`
`
`
`
`
`
`tion of a misbehaving flow manager (MFM) in accordance
`
`
`
`
`
`
`
`with one embodimentofthe present invention.
`
`
`
`
`
`
`
`
`
`
`FIG.4 is a diagram of a sample flow block in accordance
`
`
`
`
`
`
`
`with one embodimentofthe present invention.
`
`
`
`
`
`
`
`
`FIG. 5 showsone possible function for computing a bad-
`ness factor for a flow in accordance with one embodimentof
`
`
`
`
`
`
`
`
`
`
`
`
`the present invention.
`
`
`
`
`
`
`
`
`
`
`
`Splunk Inc.—Exhibit 1001 Page 7
`
`Splunk Inc. Exhibit 1001 Page 7
`
`

`

`
`
`US 8,243,593 B2
`
`
`
`
`3
`DETAILED DESCRIPTION OF
`
`
`
`EMBODIMENT(S)
`
`
`
`Network Overview
`
`
`
`
`
`
`With reference to FIG. 1, there is shown an overview of a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`network 100 in which one embodimentof the present inven-
`
`
`
`
`
`
`
`
`
`tion may be implemented. As shown,the network 100 com-
`
`
`
`
`
`
`
`
`
`prises a plurality of routers 102 interconnected to each other
`
`
`
`
`
`
`
`
`
`
`
`
`
`by trunks or links in such a way that cach router 102 has
`
`
`
`
`
`
`
`
`
`multiple possible paths to every other router 102. For
`
`
`
`
`
`
`
`
`example, information from router 102@ may reach router
`
`
`
`
`
`
`
`
`
`
`
`102d by going throughrouters 1026 and 102c, or routers 102¢
`
`
`
`
`
`
`
`
`
`
`and 102f and information from router 102c may reach router
`
`
`
`
`
`
`
`
`
`102a by going through router 1024 or router 102e. Intercon-
`
`
`
`
`
`
`
`
`
`necting the routers 102 in this way provides flexibility in
`
`
`
`
`
`
`
`
`determining how information from one router 102 is deliv-
`
`
`
`
`
`
`
`
`
`
`
`ered to another, and makesit 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
`
`
`
`
`
`
`
`
`
`
`mayfurther 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 rout-
`
`
`
`
`
`
`
`
`
`
`ers 102, each of these machines may send information to any
`of the other machinesin the network 100.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Information is conveyed from one router 102 to another via
`
`
`
`
`
`
`
`
`
`
`
`a physical link or trunk. Depending onthe 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
`
`
`
`
`
`
`
`
`
`
`purposesofthe present invention, network 100 may use any
`
`
`
`
`type of transport medium.
`
`
`
`Router Overview
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. 2 showsa block diagram of a sample router 102 that
`
`
`
`
`
`
`
`
`
`
`
`
`
`may be used to implementone or moreofthe routers 102 in
`
`
`
`
`
`
`
`
`
`
`
`network 100. As shownin 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, assumingthat the router 102 in FIG.2 is router 1025
`
`
`
`
`
`
`
`
`
`
`
`in network 100, line card 202d may couple router 1025 to
`
`
`
`
`
`
`
`
`
`
`
`router 102 line card 202c may couple router 1024 to router
`
`
`
`
`
`
`
`
`
`
`
`102c, line card 2025 may couple router 102to router 102e,
`
`
`
`
`
`
`
`
`
`
`
`and line card 202@ may couple router 1026 to router 102a.
`
`
`
`
`
`
`
`
`
`
`
`
`Overall, the line cards 202 act as the router’s 102 interfaces to
`
`the rest of the network 100. In one embodiment, the trunks
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`coupledto 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 ofacting as an ingress line card (to receive
`
`
`
`
`
`
`
`
`
`
`information from another router) or an egress line card (to
`
`
`
`
`
`
`
`
`send information to another router). Whethera particular line
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`card 202 is acting as an ingress or an egress line card at any
`
`
`
`
`
`
`
`
`
`particular time depends uponthe flow of networktraffic.
`
`
`
`
`
`
`
`
`
`
`
`
`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 switch-
`
`
`
`
`
`4
`
`
`
`
`
`
`
`
`
`
`ing fabric 204 routes information throughthe 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 increasethe flexibility of the router 102 andto facilitate
`
`
`
`
`
`
`
`
`
`
`
`the process of failure recovery, each line card 202, in one
`
`
`
`
`
`
`
`
`embodiment, has multiple connectionsto 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 202d to line
`
`
`
`
`
`
`
`
`
`
`card 202a maypass through fabric card 206c, while another
`
`
`
`
`
`
`
`
`
`route may pass through fabric card 2065. By providing mul-
`
`
`
`
`
`
`
`
`
`tiple routes between the variousline cards 202, the switching
`
`
`
`
`
`
`
`
`
`fabric 204 makes it possible to route around any internal
`
`
`
`
`failures that mayarise.
`
`
`
`
`
`
`
`
`
`
`
`In addition to the line cards 202 and the switching fabric
`
`
`
`
`
`
`
`
`204, the router 102 further comprises an application proces-
`
`
`
`
`
`
`
`
`
`sor 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 particu-
`
`
`
`
`
`
`
`
`lar destination address. Put another way, given a destination
`
`
`
`
`
`
`
`
`address, the application processor 208 determines which line
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`card 202or line cards are mostsuitable to act as the egress line
`card to forward information to that destination address. For
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`example, supposethat the router 102 in FIG. 2 is router 1025
`
`
`
`
`
`
`
`
`
`
`in network 100, and that the destination is a machine coupled
`
`
`
`
`
`
`
`
`
`
`
`to router 102d. Supposefurtherthat line card 202c is coupled
`
`
`
`
`
`
`
`
`
`
`
`
`
`to router 102c andline card 202d is coupled to router 102 In
`
`
`
`
`
`
`
`
`
`
`
`such a case, because the mostdirect routes to router 102d are
`
`
`
`
`
`
`
`
`
`
`through either router 102c or 102/; the most suitable egress
`
`
`
`
`
`
`
`
`
`line cards for forwarding informationto the destination router
`
`
`
`
`
`
`
`
`
`
`102d are probably line cards 202c and 202d. Accordingly, the
`
`
`
`
`
`
`
`
`application processor 208 designates these line cards 202c,
`
`
`
`
`
`
`
`
`
`
`202d as potential egress line cards for destination router 102d,
`
`
`
`
`
`
`
`
`
`
`
`with one being designated as the primary egress line card and
`
`
`
`
`
`the other being the alternate.
`
`
`
`
`
`
`
`
`
`
`Oncethe 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,
`
`
`
`
`
`
`
`
`
`
`
`
`whena line card 202 acts as an ingress line card and receives
`
`
`
`
`
`
`
`
`
`
`
`a set of information, it can use the forwarding table to deter-
`
`
`
`
`
`
`
`
`
`
`
`mine the appropriate egress line card 202 to which to forward
`
`
`
`
`
`
`
`
`
`the information. Because the egress line card information is
`
`
`
`
`
`
`
`
`
`predetermined andstored in the forwardingtable, the ingress
`
`
`
`
`
`
`
`
`
`
`line card simply has to perform a table lookup to determine
`
`
`
`
`
`
`
`
`
`
`the properegressline 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 informa-
`
`
`
`
`
`
`
`
`
`
`
`
`tion that is sent by a source to a destination. To enableit to be
`
`
`
`
`
`
`
`
`properly routed, a packet typically comprises a header por-
`
`
`
`
`
`
`
`
`
`
`tion. 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 embodi-
`
`
`
`
`
`
`
`
`
`ment, 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
`
`
`
`16
`
`
`
`15
`
`
`
`20
`
`
`
`25
`
`
`
`30
`
`
`
`35
`
`
`
`40
`
`
`
`45
`
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`
`
`Splunk Inc.—Exhibit 1001 Page 8
`
`Splunk Inc. Exhibit 1001 Page 8
`
`

`

`
`
`US 8,243,593 B2
`
`
`
`
`5
`
`
`
`
`
`
`
`
`
`
`destination address(i.e. the network address ofthe 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 bereferred 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 mayalso 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 groupedinto a flow if they share a
`
`
`
`
`
`
`
`sufficient amount ofheader information. More specifically, in
`
`
`
`
`
`
`
`
`
`
`
`one embodiment, packets belong to the sameflow ifthey have
`
`
`
`
`
`
`
`
`
`
`
`
`the five tuple in common.Thus, if two or more packets have
`
`
`
`
`
`
`
`
`
`
`the same source address, the same source port number, the
`
`
`
`
`
`
`
`
`samedestination address, the same destination port number,
`
`
`
`
`
`
`
`
`
`
`
`and the sameprotocol, they are grouped into the same flow.
`
`
`
`
`
`
`
`
`
`
`Usually, barring somefailure that requires rerouting,all ofthe
`
`
`
`
`
`
`
`
`
`
`packets belonging to a flow are received by the same ingress
`
`
`
`
`
`
`
`
`
`
`
`
`line card 202 and forwardedto 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 ofthe traffic flowing through the router
`102 to be derived.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The flows that pass through a router 102 may represent
`
`
`
`
`
`
`
`
`
`
`many different types oftraffic. For example, the flows may
`
`
`
`
`
`
`
`
`
`
`contain web browsingtraffic, TCP traffic, P2P traffic, etc. As
`
`
`
`
`
`
`
`noted previously, sometraffic is more abusive/misbehaving
`
`
`
`
`
`
`
`
`
`
`
`than others. P2Ptraffic, for example, is often considered to be
`
`
`
`
`
`
`
`
`
`abusive. Other types oftraffic may also be considered abu-
`sive. 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/
`
`
`
`
`
`
`
`
`
`misbehavingtraffic, 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.
`
`
`
`
`
`
`
`
`
`
`Morespecifically, 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 purposesof 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 maybereal-
`
`
`
`
`
`
`
`
`
`
`
`ized by having one or more processors on a line card 202
`
`
`
`
`
`
`
`
`execute one or more sets of instructions. Alternatively, the
`
`
`
`
`
`
`
`
`MFM210 may be implemented using hardwired logic com-
`
`
`
`
`
`
`
`
`
`
`
`ponents(e.g. in the form of one or more ASIC’s ona 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 ofan MFM 210 in accordance with one embodi-
`
`
`
`
`
`
`
`
`
`
`
`ment of the present invention will now be described. In the
`
`
`
`
`
`
`
`
`
`
`
`following discussion, it will be assumedthat the MFM 210 is
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ona line card 202that 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
`
`
`
`
`
`
`
`
`6
`
`
`
`
`
`
`
`
`
`
`
`
`noted that the MFM 210 ona line card may process flows in
`
`
`
`
`
`
`
`
`
`
`
`
`
`the same manner even whentheline 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
`
`
`
`
`
`
`
`
`doesnot necessarily, involve forwardingthe packet to another
`
`
`
`
`
`
`
`
`
`
`router. As the packets of a flow are processed, a set of behav-
`
`
`
`
`
`
`
`
`
`
`
`ioral statistics are maintained (block 302 of FIG. 3) for the
`
`
`
`
`
`
`
`
`flow. These behavioralstatistics reflect the empirical behavior
`of the flow. In one embodiment, the behavioral statistics
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`include a total byte count (sum ofall of the bytesin all of the
`
`
`
`
`
`
`
`
`
`
`
`
`packets of the flow that have been processed up to the current
`
`
`
`
`
`
`
`
`
`
`
`time), a life duration (how longthe flow has been in existence
`
`
`
`
`
`
`
`
`
`
`since inception), a flow rate (derived by dividingthetotal byte
`
`
`
`
`
`
`
`
`
`
`
`
`countby 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 behavioralstatistics are stored by the line card 202 ina
`
`
`
`
`
`
`
`
`
`
`flow block associated with the flow, and are updated as infor-
`
`
`
`
`
`
`
`
`
`mation packets belonging to the flow are processed; thus,
`
`
`
`
`
`
`
`
`
`
`these behavioralstatistics provide an up to date reflection of
`the flow’s behavior.
`
`
`
`
`
`
`
`
`
`
`
`Based upon the behavioral statistics, the MFM 210 deter-
`
`
`
`
`
`
`
`
`
`mines(block 304) whether the flow is exhibiting undesirable
`
`
`
`
`
`
`
`
`
`behavior. In one embodiment, this determination is made by
`
`
`
`
`
`
`
`
`
`c

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket