throbber
UIllted States Patent [19]
`Baker et a1.
`
`[54] SYSTEM AND METHOD FOR GENERAL
`PURPOSE NETWORK ANALYSIS
`
`[75] Inventors: Peter D. Baker. Aliso Viejo; Karen
`Neal. Los Angeles. both of Calif.
`
`.
`[73] Assigneez NB Networks. Aliso Viejo. Calif.
`
`[21] Appl. N0.: 575506
`[22] Filed:
`Dec. 20, 1995
`
`‘
`
`11500579394111
`
`5
`[11] Patent Number:
`[45] Date of Patent:
`
`‘
`
`‘
`
`1
`
`‘
`
`5,793,954
`Aug. 11, 1998
`
`5.062.055 10/1991 Chinnaswamy et a1.
`5.210.530
`5/1993 Kammerer et a1.
`
`364/55101
`l .
`
`5.442.639
`
`8/1995 Crowder et al. ..................... .. 371/201
`
`Primary Emminer—Emanue1 T. Voeltz
`Asst-5mm Examiner_Thomas Peaso
`Attorney, Agent, or Firm-Lyon & Lyon LLP
`
`[57]
`
`ABSTRACT
`
`[51] Int. cl.6 ................................................... .. H04L 12/28
`[52] US. Cl. .............. ..
`395/2003; 371/35
`[58] Field 01' Search .......................... .. 364/514 C. 514 R.
`364/55101; 340/825.06: 371/35. 48. 53.
`67-1~ 6&1 20-1~ 3? 395/182-02- 182-19-
`183'13‘ 183'15 ‘ 18322‘ 185‘01‘20O'8
`References Cited
`
`[56]
`
`U.S. PATENT DOCUMENTS
`
`A network interface System and r¢1at¢d methods- A Single
`logic control module. which may be implemented in hard
`ware or software. is utilized to perform any of a number of
`data manipulation functions including. for example. parsing.
`?ltering. data generation or analysis. based upon one or
`more programmably con?gurable protocol descriptions
`which may be stored in and relrieved from an associated
`memory.
`
`4,851,997
`
`7/1939 Tamra ............................... .. 395/20001
`
`4 Claims, 20 Drawing Sheets
`
`20 /'\_/
`
`r\/ 22
`
`{NPUT
`.
`.
`.7
`UEVKIES
`/\
`K
`
`7 P
`
`NETWORK
`DATA
`F‘LFS
`
`PROTOCOL
`DESCRIPTION
`F‘LES
`
`,
`OUTPUT
`DEVTCES
`\
`E
`
`7 8
`
`NETWORK DEVICE
`CO N TROT
`|_ O G T C
`
`/ \/ 76
`
`Petitioners' EX1012 Page 1
`
`

`
`US. Patent
`
`Aug. 11, 1998
`
`Sheet 1 0f 20
`
`5,793,954
`
`70 /\_/
`
`STORAGE
`
`/\,/ 74
`
`,
`
`7
`
`OUTPUT
`
`\
`
`K
`
`78
`
`WW:
`
`NETWORK
`
`DATA
`
`PROTOCOL
`
`DESCRIPTION
`
`\
`
`F
`
`79
`
`NETWORK DEVICE
`CONTROL
`LOGlC
`
`Petitioners' EX1012 Page 2
`
`

`
`US. Patent
`
`Aug. 11, 1998
`
`Sheet 2 of 20
`
`5,793,954
`
`OPTIONAL DATA
`
`PROTOCOL
`HEADER #m‘
`
`PROIOCOL
`HEADt'R #1
`
`F/G. 2
`
`[FIELD #? SUBRECORD
`
`PROTOCOL
`CONTROL
`RECORD
`
`F/G. 3
`
`Petitioners' EX1012 Page 3
`
`

`
`U.S. Patent
`
`Aug. 11, 1993
`
`Sheet 3 of 20
`
`5,793,954
`
`“SE0”.
`
`
`
`muzmzfiwEummxoEa.ExuonuE
`
`
`
`
`
`598..59.3Enm
`
`
`
`
`
`...1_“_.ss_£§_,_mfiEH§_§§
`
`
`
`Eooom_o:cooEEm£m
`
`co:m_m:m._._.
`
`
`
`
`
`...uc__m.mSom.mmu_..
`
`..c3oS.::..
`
`mw.3
`
`%&..Eu_.aEl%88858885Hgggg.8205
`
`
`
`
`
`Bauazm.a3_oo..mm2no<.oucm>cozmczmmo
`
`
`
`
`
`Petitioners‘ EX1012 Page 4
`
`Petitioners' EX1012 Page 4
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1993
`
`Sheet 4 of 20
`
`5,793,954
`
`
`
`m:2o::mq:xoo._mmm:uu<._oucm>mofiom
`
`
`
`
`
`vtutlt
`
`:o:m_mcE._.
`
`__c3oSE3._
`
`230523..
`
`HHatsmamasH.:<mags$3.5E
`%.535885mIEEE
`
`Q»,.3
`
`..8_.emsoEm$..j<88858886
`
`._§a§.5_.H&&&xo588$
`
`Petitioners‘ EX1012 Page 5
`
`Petitioners' EX1012 Page 5
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1993
`
`Sheet 5 of 20
`
`5,793,954
`
`SEE...52$
`
`u:xoo4
`
`
`
`
`
`Sumo:mEn._mxomnoasI
`
`m=.zo::m
`
`1_E.§IEIlEI .i
`..=m%._59.353uzmzzw5m
`
`G)
`A
`
`27:‘.
`>3:
`“*0
`
`E3“.I2:5EEoumm
`
`_O.::0O
`
`
`
`mEmz_ooSo..a
`
`
`
`.ou2oiocmcwo.no
`
`gEEEIIEIEI
`_E_§
`EIIIIEIHEIIE
`IIIII
`
`V‘
`
`V
`
`.mv_oommeaomE%%EO
`
`Petitioners‘ EX1012 Page 6
`
`Petitioners' EX1012 Page 6
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1993
`
`Sheet 6 of 20
`
`5,793,954
`
`
`
`
`
`m:2u::m_ouo.o&:82m
`
`nibmEmi
`
`Petitioners‘ EX1012 Page 7
`
`Petitioners' EX1012 Page 7
`
`

`
`U.S. Patent
`
`Aug. 11, 1993
`
`Sheet 7 of 20
`
`5,793,954
`
`
`
`mzauazm_O0o.O..&“X02Exuommusom
`
`
`
`
`
`
`
`_._82en__mm2_...
`
`j<«:9688.5
`
`:3<
`
`tnaxo856Hzm>m$55.25.5HEH$555'Eu
`
`Petitioners‘ EX1012 Page 8
`
`Petitioners' EX1012 Page 8
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1993
`
`Sheet 8 of 20
`
`5,793,954
`
`u:xoo4
`
`o._3o::m
`
`2%IEIEEIEIHHEEHHHIEU0;
`
`.222
`
`
`
`._co_ao._ommo:
`
`EaoEms:“.9Egg
`_.5__.o§ss.5_.ggg
`._s_ao82ma,EEE
`
`Petitioners‘ EX1012 Page 9
`
`
`
`£95..£95..E3E5595,.Bate
`
`
`
`muzmzflm._@Um@IoEw._u_xouzo:3gmgm
`
`
`
`
`
`wEm.ZEmi
`
`EEHIII
`
`wEm
`
`01
`
`co:
`
`.o
`
`.
`O
`
`
`
`%E,,.%:.__..zEEoumm_9Eooco_aO_2mm_2no
`
`
`
`
`
`
`
`oEmz_ou2oE
`
`
`
`co_EoBum:no
`
`Petitioners' EX1012 Page 9
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1998
`
`Sheet 9 of 20
`
`5,793,954
`
`aaxooq
`
`o._3u::m
`
`8_§§m
`
`:o=m_m:m.F
`
`EE
`Egg%_E._sz
`Ii!‘
`
`:o_.qO.m_._.0Emn_O
`
`
`
`mEmz_oo2o.a
`
`
`
`Hoax.228ceaoSmno
`
`mgmeaz
`
`
`
`some:9:2...,_8._oEm_m:3._m._m
`
`
`
`
`
`mEm2Emi
`
`xoc:_
`
`xxEm
`
`59.8..59.3Eam
`
`
`E5czm598..32.0
`
`Eli:
`
`H
`mmmm%
`
`
`
`u:xoo._._Ow
`
`%Egg3.2.E2Em:2o_.:.m
`
`HE
`
`Petitioners‘ EX1012 Page 10
`
`Petitioners' EX1012 Page 10
`
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1998
`
`Sheet 10 of 20
`
`5,793,954
`
` g:¥Eou_._2_E
`
`
`m._3u:.zw
`
`E
`
`é.u..§..o%
`Egg
`II!‘
`
`
`
`oEaz_ooo.o._m
`
`ceaouoozmo
`
`
`
`
`
`Eoumm_O:COO.._o:QOQOOZQ0
`
`a:xoo4
`
`
`
`oEm.ExuocoE91to;gm.52.52Emi
`
`IEIEIEIHHEHEH
`
`59.3593..
`
`
`
`Esmcam55£m:m4..ammo
`
`lilo;
`
`:o:m_mcm.:.
`
`m:3u:.:m9203qooz
`
`lg
`%E§_s_..__2
`
`Hxou:_:82_oo2o.i
`
`ma.3
`
`xmnE
`
`Petitioners‘ EX1012 Page 11
`
`Petitioners' EX1012 Page 11
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1998
`
`Sheet 11 of 20
`
`5,793,954
`
`
`
`Eoumm_EEoo:o_EOm~_mxmsE:2aw
`
`
`
`
`
`_mE_omu
`
`_mE_uwU
`
`EIEIEIIIIE
`JEIIEIIEIII
`lz.EEI.i.i
`
`a:xoo4
`
`Efiuabw
`
`
`
`
`
`Sumo:oEm..u_xoozoE
`
`
`
`59:...5.9.35.;£5gm._
`
`E2230
`EmEm_u_
`
`
`
`UBESU.u.u_m¢E=zE
`
`
`
`mEmz_ouo.o.a
`
`
`
`cozaom~_mxmE
`
`co:m_mcE.—
`
`_.mN_mxm2ss_..
`
`IEfig
`
`Petitioners‘ EX1012 Page 12
`
`Petitioners' EX1012 Page 12
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1998
`
`Sheet 12 of 20
`
`5,793,954
`
`
`
`mSU::m_o:cooEccmco._m:_n_
`
`
`
`
`
`
`
`memzEccaco
`
`:o_§m5m.._no
`
`.aE_omE2...
`
`mX8532:.E
`o$9...3mama
`_x%:_.3m::._n.
`%%%
`
`
`m_m::m:U.252.mE_ouBEE.6.8832masm.25Esmm
`weIIm_§:e,__1,
`
`9wt
`
`Petitioners‘ EX1012 Page 13
`
`Petitioners' EX1012 Page 13
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1998
`
`Sheet 13 of 20
`
`5,793,954
`
`.
`
`._:_<
`
`=305£0:
`4._<HE
`
`
`
`
`
`..::U::w9:00..co___uSo_m=Emx%:_
`
`:o:m_mcE.~
`
`
`
`
`
`|<|&&.aEEgg
`
`
`QEEIEEEE
`m::o::mazxonjcoavcoo_$_EFxouc_
`
`
`
`
`
`920259203coaucoo_m.=Eoxmus
`
`cozsmcmfi
`
`
`
`LOO.“_ou8>..
`
`
`j<|E8.aIoooooxoIggéafifi
`|<lfitxo Hggl
`
`o:_m>Eaom
`
`m_s.<E1mm5::
`
`ws_<E$S_M
`
`Petitioners‘ EX1012 Page 14
`
`Petitioners' EX1012 Page 14
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Aug. 11, 1998
`
`Sheet 14 of 20
`
`5,793,954
`
`3»
`
`mt
`
`82
`
`
`
` EamgaEE>§wE:m_dw_:am
`
`
`
`m_>§m§:é_E~Bz_
`
`SE:9232%mmbi91oUo§_n__Zw_V_.5am/1:N
`
`s:_,_§_v25%:
`
`as;Q5>2<
`
`my
`
`m9____mm_,.E
`
`
`
`éémmi/1%
`
`agzowézfiaE0
`
`%::§9E53mm
`
`25;:923.2%mm
`
`
`
`o9EEEd>5§§.255:mm
`
`NS
`
`\\wt
`
`«Q
`
`Q3
`
`22mrfi
`
`37525,.E05
`
`839%232%_1_;_mz§_
`
`
`
`§<,a_§:55UEEE_
`
`7.o_%.§5E
`
`
`
`
`
`33..§3_..,z8fi<may
`
`Q3
`
`«Eta“:45:2
`
`N:
`
`3.23:V255:3
`
`S85E52
`
`252
`
`B»
`
`ms
`
`885%
`
`.35..9soeoizfiamm
`
`at
`
`§29E&§
`
`
`
`GBEEQEZ£355
`
`as
`
`_8o§%azEéofiéafiamm
`
`Petitioners‘ EX1012 Page 15
`
`Petitioners' EX1012 Page 15
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`
`US. Patent
`
`Aug. 11, 1998
`
`Sheet 15 of 20
`
`5,793,954
`
`150" PARSEPROTOO [
`
`__
`
`752
`
`PARSEFIELD
`
`(RE Y‘URNS LOOALPROO}
`
`ALL BITS PARSED
`PARSELEN >: HWLEN '?
`
`‘
`YES
`
`P155
`RETURN
`NULL
`
`I75
`
`YES
`
`:72
`
`154
`
`NO
`
`CURRENTPROTOCOL SUPPORT
`56”
`
`NO
`
`YES
`
`SET CURRENTPROTOCOL TO OPTION f 755
`CQNTROL PROTOCOL
`
`—
`
`NO
`
`ANY OPTIONS
`PROTOPARSELEN<HEADERLEN ?
`
`NO
`
`ALL OOs PARSED
`PARSELEN >2 HWLEN '9
`
`I60
`
`YES
`
`SUBTRACT PROTOPARSELEN FROM w ,6;
`HEADERLEN
`
`PARSEFIELDS
`(RETURNS NEXTOPHON)
`
`754
`
`1!
`LSET CURRENWROIOCOL TO NEXIOPOON k“ F66
`
`F/G. /2
`
`Petitioners' EX1012 Page 16
`
`

`
`U.S. Patent
`
`Aug. 11, 1993
`
`Sheet 16 of 20
`
`5,793,954
`
`am
`
`32wt
`
`go.
`
`
`
`:32EOBKEESEmoEzfimmmiogg_Qd_E3mm
`
`
`
`mm\wt2252585%225%?am
`
`
`
`m\wt33wt
`
`
`
`mum-/1E$mm<n9zlamznopogQ2
`
`9
`
`2§§n_o§_n_-2m§§_VQ2
`
`Edmmé
`
`255%EzEm%%5%mm
`
`QR
`
`Em392%:
`
`
`
`“.17Em~§o5%_Az..1._$Q§_wo93:59m_
`
`§EEWSQ02.3E35mm
`
`ammom
`
`E5mafia:
`
`z5$Q:IvzEm~_§9o&
`
`
`
`m5:9ed:5:52/K
`
`m%
`
`:5mg§<E
`
`2:§§_.._vzEm%_
`
`M3,;E
`
`E3;$3.53age023
`
`B»mew
`
`Sm
`
`Petitioners‘ EX1012 Page 17
`
`Petitioners' EX1012 Page 17
`
`
`
`
`
`
`
`
`
`
`

`
`US. Patent
`
`Aug. 11, 1998
`
`Sheet 17 0f 20
`
`5,793,954
`
`P11521116
`cowncum 011 [HIS +1110 '2
`
`YES
`
`APPLY FILTER
`
`/
`
`232
`
`DOES HELD
`CONT/UN A CHECKSUM ?
`
`VERIFY CHECKSOM
`
`COLLECT STANSNCS
`
`2J6
`
`PERFORM ROUTING
`
`DOES ‘FIELD
`CONTAIN HEADERLEN ?
`
`s11 HEADERLEN 10 m
`VALUE*HEADERLENFLAG
`258
`
`390
`
`NO 1
`
`ADD CURFIiLD 511115110111 10
`ZZZ/“11111135191 AND PROTOPARSELEN
`
`0015 HFLD
`comm FRAMELEN '2
`/
`224
`
`2?”
`
`SET FRAMELEN 10 MINMUM OF
`HWLEN AND
`(VALUE*FRAMELENFLAG + PARSELEN
`— PROTOPARSELEN)
`|
`
`F/G. L315
`
`Petitioners' EX1012 Page 18
`
`

`
`US. Patent
`
`Aug. 11, 1998
`
`Sheet 18 0f 20
`
`5,793,954
`
`J00’
`
`VALIOATE VALUE
`
`DOES LOOKUP
`TABLE EXTST '4’
`
`Jig
`
`TALL VALUES OKT
`INCRLMEM CURFIFTD BY 1
`
`V
`LVAIUE TS TTTTOALT
`TNCTTEMENT CU‘THLLD BY T
`
`J04
`
`VALUE FOUND
`IN LOOKUP TABLE ?
`
`TS
`NEXTDROTOCOL NULL ?
`
`SET NEXTPROTOCOL TO LOOKUP
`PROTOCOL
`
`A SET CURFIELD TO LOOKUP iNDFX _|
`m
`
`RETURN =
`
`F/G. l4
`
`Petitioners' EX1012 Page 19
`
`

`
`U.S. Patent
`
`Aug. 11, 1998
`
`Sheet 19 of 20
`
`5,793,954
`
`APPLY FTLTER
`
`YES
`
`IS INDEX<
`NEXTCRITERTALTNDEX?
`SKIP
`
`INJLX>CQUNT '?
`MTSSzD
`
`TBNODKJSLYTBQF
`
`404
`
`406
`
`TT
`405 ?\ SET NEXTCRITERTAUNDEX TO
`ENTRY NEXTTNDEX HELD
`
`TS ENTRY STATUS PASS ?
`
`409
`
`4/6
`
`SET‘ mm STATUS
`10 PASS
`
`474
`/
`T
`
`T!
`(DTSABLE FILTER)
`SET NEXTCRITERAHNDTX TO
`' TOTALCRITERTA
`
`= RETURN
`
`420w
`
`T
`
`Petitioners' EX1012 Page 20
`
`

`
`U.S. Patent
`
`Aug. 11, 1998
`
`Sheet 20 of 20
`
`5,793,954
`
`K.‘m3<>mi“E5
`
`m?§<§w_
`
`
`
`BE:3E323,;::m
`
`m__mxlf3.1>3<>zzm
`
`wouE<>mEn.Awas,mfg>m<>
`
`zo_§§_28E815%232>>m<>
`
`
`
`Bzcam2.5J_<>>m<>
`
`_,_E<%o_a,._z8>m
`
`mm;
`
`E;25%32>83>E35
`
`1:35333>gm;
`
`E;25%Siam3%
`
`Eu:
`
`3mm
`
`Mam
`
`Petitioners‘ EX1012 Page 21
`
`E22:+E5/avEE225Eea.2Emm
`
`:25E53>Emm952>am
`
`52>Z3%Em
`
`Petitioners' EX1012 Page 21
`
`
`
`
`
`
`
`
`

`
`1
`SYSTEM AND METHOD FOR GENERAL
`PURPOSE NETWORK ANALYSIS
`
`TECHNICAL FIELD
`
`The present invention relates to network communications
`systems and. in particular. to improved systems and methods
`for parsing. filtering. generating and analyzing data com-
`posed of inter-related structures such as protocols found
`within network frames.
`
`BACKGROUND ARI"
`
`Existing network interface devices provide systems for
`receiving. analyzing. filtering and transmitting network data
`or frames of data. Network Protocol Analyzers. Bridges. and
`Routers are among the most common network interface
`devices currently available.
`Conventional network protocol analyzers provide. for a
`predefined set of network frame structures or protocols. a
`system for monitoring the activity of a network and the
`stations on it by allowing network traffic to be captured and
`stored for later analysis. Common capture and analysis
`capabilities include the gathering of statistics. subsequent
`report generation.
`the ability to filter frames based on
`specific criteria. and the ability to generate network traflic.
`Bridges and routers are network devices that pass frames
`from one network interface to another. Bridges operate at the
`data—link layer and routers at the network layer of the OSI
`reference model. Like protocol analyzers. both bridges and
`routers may gather statistics and filter incoming network
`frames based on specific criteria. however incoming frames
`also may be forwarded to other networks based on infor-
`mation collected by the bridge or router. Routers typically
`support only a limited number of network protocols.
`Each of these network devices requires an ability to
`separate network frames into individual protocols and their
`components (typically referred to as parsing). an ability to
`filter incoming frames based on a logical combination of one
`or more field values extracted during parsing. and an ability
`to gather statistics based in part on extracted field values.
`Typically.
`it
`is a requirement
`that network frames be
`received. analyzed and forwarded at full network speeds.
`sometimes on many different networks at one time.
`A frame filter consists of one or more criteria which
`
`specify one or more valid values for a frame (or segments of
`a frame). Frame filtering criteria are typically implemented
`using an offset (from frame or protocol header start). a length
`in bits which defines a field. a value for comparison. and
`mask values for identifying relevant and irrelevant bits
`within the field. For multiple value filter criteria. the result
`from each filter value is logically OR’ed together to obtain
`an overall result. Therefore. each additional result adds to
`the processing required to filter a given field. For filtering on
`optional protocol fields that do not occur at the same relative
`offset
`in each protocol frame.
`this method is time-
`consuming. Thus. it would be desirable to perform filtering
`on both fixed and optional variable offset fields for any
`number of values or ranges of values without incurring any
`additional overhead.
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`Parsing. the process wherein network frames are broken
`up into their individual protocols and fields. is necessary for
`filtering with oflsets relative to protocol headers. gathering
`field based statistics. generating network traflic. routing data
`frames. verifying field values. and displaying network
`frames in human readable form. In conventional systems.
`
`65
`
`5.793.954
`
`2
`
`the parsing process has an overall structure which incorpo-
`rates conlrol logic for each supported protocol. Therefore.
`additional control logic must be developed when support for
`a new protocol is added to a conventional system. As the
`development of additional control
`logic. whether imple-
`mented in hardware or software. may be both time consum-
`ing and expensive. it would be highly desirable to be able to
`parse all protocols with a single configurable software (or
`hardware) module so that support for additional protocols
`could be added to a system without requiring substantial
`modification to the system or its control logic.
`Further. although microprocessors (or CPUS) available
`today can execute tens or even hundreds of millions of
`instructions per second. vendors often must provide dedi-
`cated hardware assistance and/or front-end processors with
`hand-coded assembly language routines to achieve the nec-
`essary processing rates for more than one pair of networks.
`Unfortunately. this solution requires hardware and/or soft-
`ware modifications whenever changes are made to the
`number of supported features or protocols.
`Finally. as networks become larger and more complex. the
`maintenance of a comprehensive statistics database by each
`network device becomes more important. Because these
`statistics databases typically are not utilized by a maintain-
`ing device. but instead are collected by a network manage-
`ment device. the collection process may affect performance
`adversely without any corresponding benefit to the collect-
`ing device.
`is
`it
`In light of the considerations discussed above.
`believed that a network interface system having a config-
`urable protocol analysis capability with common control
`logic applicable to many difierent network devices would be
`highly desirable.
`
`SUMMARY OF INVENTION
`
`The present invention is directed to improved systems and
`methods for parsing. filtering. generating and analyzing data
`(or fiames of data) transmitted over a data communications
`network. In one particularly innovative aspect of the present
`invention. a single logic control module. which may be
`implemented in hardware or software. is utilized to perform
`any of a number of data manipulation functions (for
`example. parsing. filtering. data generation or analysis
`functions) based upon one or more programmably config-
`urable protocol descriptions which may be stored in and
`retrieved from an associated memory.
`The use of common control logic (i.e. the use of a single
`logic control module) and programmably configurable pro-
`tocol descriptions allows changes to existing protocols to be
`made and support for new protocols to be added to a system
`in accordance with the present invention through configu-
`ration only—without the need for hardware and/or software
`system modifications. Thus. those skilled in the art will
`appreciate that a network interface in accordance with the
`present invention may be configured and reconfigured. if
`necessary. in a highly efiicient and cost elfective manner to
`implement numerous data manipulation functions and to
`accommodate substantial network modifications (for
`example. the use of different data transmission hardware.
`protocols or protocol suites) without necessitating substan-
`tial system changes.
`In one preferred form. the system of the present invention
`may employ a CPU or other hardware implementable
`method for analyzing data from a network in response to
`selectively programmed parsing. filtering. statistics
`gathering. and display requests. Moreover. the system of the
`
`Petitioners‘ EX1012 Page 22
`
`Petitioners' EX1012 Page 22
`
`

`
`5.793.954
`
`3
`present invention may be incorporated in a network device.
`such as a network analyzer. bridge. router. or traflic
`generator. including a CPU and a plurality of input devices.
`storage devices. and output devices. wherein frames of
`network data may be received from an associated network.
`stored in the storage devices. and processed by the CPU
`based upon one or more programmably configurable proto-
`col descriptions also stored in the storage devices. The
`protocol descriptions may take the form of one or more
`protocol description files for each supported network pro-
`tocol and may include a protocol header record and plurality
`of field sub-records having data corresponding to an asso-
`ciated protocol and fields defined therein.
`The system of the present
`invention also preferably
`includes logic for extracting field values from particular
`network frames. performing validation and error checking.
`and making parsing decisions based upon field values and
`information in the programmably configurable protocol
`descriptions.
`invention also preferably
`The system of the present
`includes logic for filtering a subset of network frames
`received from the input or storage devices which satisfy a
`filter criteria based upon information defined in the pro-
`grammably configurable protocol descriptions.
`The system of the present
`invention also preferably
`includes logic for filtering network frames which satisfy a
`plurality of filter criteria which. if desired. may be joined
`together by Boolean operators.
`invention also preferably
`The system of the present
`includes logic for analyzing a filter request by breaking the
`request into its component criteria to determine whether the
`result from evaluating a particular filter request criteria when
`combined with results from earlier criteria can be used to
`filter (i.e. discard) a particular network frame.
`The system of the present
`invention also preferably
`includes logic for collecting statistics based upon extracted
`field values satisfying a statistics criteria based upon infor-
`mation defined in the programmably configurable protocol
`descriptions.
`invention also preferably
`The system of the present
`includes logic for determining a next protocol description
`structure required to continue analyzing a network frame.
`The system of the present
`invention also preferably
`includes logic for determining a frame length and individual
`protocol header lengths from extracted field values in a
`network frame.
`
`invention also preferably
`‘The system of the present
`includes logic for making routing decisions based upon
`information contained in the programmably configurable
`protocol descriptions.
`invention also preferably
`The system of the present
`includes logic for determining display formats based on
`information contained in the programmably configurable
`protocol descriptions.
`invention also preferably
`The system of the present
`includes logic for verifying individual field values and
`making parsing decisions based on the validity of the value.
`The system of the present
`invention also preferably
`includes logic for constructing and transmitting network
`frames with varying field contents based on information
`contained in the programmably configurable protocol
`descriptions.
`The system of the present invention may be employed in
`any system where it is useful to be able to examine and
`perform various operations on contiguous bit-fields in data
`structures. wherein each data structure is composed of
`predefined fields of one or more contiguous bits. Further. the
`system of the present
`invention is particularly efficient
`where operations must be performed on a subset of included
`fields.
`
`20
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`4
`
`Those skilled in the art will recognize that the system of
`the present invention gains a distinct advantage in size and
`maintainability over conventional network devices by
`implementing analysis capabilities for multiple known and
`unknown protocols using common control
`logic.
`Furthermore. the system gains a distinct advantage in speed
`and efiiciency over conventional network devices when the
`control logic is implemented in hardware or a front-end
`processor. without incurring the penalty of additional hard-
`ware and/or software development when protocol defini-
`tions change.
`Accordingly. it is an object of the present invention to
`provide an improved system for network analysis wherein
`the system may determine which protocols and which pro-
`tocol fields exist in a network frame (also referred herein as
`parsing) using common control logic combined with con-
`figurable protocol descriptions.
`It is yet another object of the present invention to provide
`an improved system for network analysis wherein the con-
`trol logic may be implemented in hardware as well as
`software.
`
`It is yet another object of the present invention to provide
`an improved system for network analysis wherein each
`supported analysis capability is configurable even when the
`control logic is implemented in hardware.
`It is another object of the present invention to provide an
`improved system for network analysis wherein the system
`may determine whether a particular network frame includes
`a field that satisfies a particular filter criteria based upon
`information stored in a programmably configurable protocol
`description.
`It is yet another object of the present invention to provide
`an improved system for network analysis wherein the sys-
`tem may determine if a particular network frame includes a
`protocol field that satisfies a particular statistics gathering
`criteria defined in a prograrnmably configurable protocol
`description.
`It is yet another object of the present invention to provide
`an improved system for network analysis wherein the sys-
`tem may generate network traffic in the form of frames
`constructed from selected protocol descriptions with the
`ability to specify a variety of methods for varying individual
`field values.
`
`It is still another object of the present invention to provide
`an improved system for network analysis wherein the sys-
`tem may route network frarnes (deterrnine the appropriate
`destination interface) that satisfy a particular routing criteria
`defined in a programmably configurable protocol descrip-
`tion while providing a capability to specify a variety of
`methods for varying individual
`field values during the
`routing process.
`It is still another object of the present invention to provide
`an improved system for network analysis wherein the sys-
`tem may determine if a particular network frame includes a
`protocol field that contains a value related to either the
`overall length of the frame or the current protocol header
`length.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram of a network interface system
`in accordance with one form of the present invention.
`FIG. 2 is a diagram representing a set of data records of
`a typical network frame which may be contained in the data
`files of the network interface system illustrated in FIG. 1.
`FIG. 3 is a diagram representing a set of data records of
`a protocol description in accordance with one form of the
`present invention.
`FIG. 4 is a diagram representing a control record of an
`Ethernet protocol description which may be utilized in a
`
`Petitioners‘ EX1012 Page 23
`
`Petitioners' EX1012 Page 23
`
`

`
`5.793.954
`
`5
`network interface system in accordance with one form of the
`present invention.
`FIG. 4a is a diagram representing five defined field
`sub-records of the Ethernet protocol description illustrated
`in FIG. 4.
`
`FIGS. 4b, 4c, and 4d are diagrams representing lookup
`structures referenced in FIG. 4a fields 0. 2 and 4 respec-
`tively.
`FIG. 5 is a diagram representing a control record of an
`imaginary Generic Protocol description which may be uti-
`lized in a network interface system in accordance with one
`form of the present invention.
`FIG. 5a is a diagram representing eleven defined field
`sub-records of the GP description illustrated in FIG. 5.
`FIGS. Sb, Sc, 5d, and 5e are diagrams representing lookup
`structures referenced in FIG. 5(a) fields 1. 3. 7 and 8.
`respectively.
`FIGS. 6. 6a, and 6b are diagrams representing the control
`record and field sub-record of a protocol description struc-
`ture that allows parsing of optional fields of the GP descrip-
`tion shown in FIGS. 5-Se.
`
`FIGS. 7. 7a, and 7b are diagrams representing the control
`record and field sub-records of a protocol description struc-
`ture that describes the End Of List option of the GP
`description shown in FIGS. 5-Se.
`FIGS. 8. 8a, and 8b are diagrams representing the control
`record and field sub-records of a protocol description struc-
`ture that describes the No Operation option of the GP
`description shown in FIGS. 5—5e.
`FIGS. 9. 9a, and 9b are diagrams representing the control
`record and field records of a protocol description file that
`describes the Maximum Frame Size option of the GP
`description shown in FIGS. S—5e.
`FIGS. 10. 10a, 10b, 10c, 10d and we are diagrams
`representing data records of a filter expression control and
`associated field filter structures.
`FIG. 11 is a flow chart illustrating top level frame parsing
`control logic in accordance with one form of the present
`invention.
`
`FIG. 12 is a flow chart illustrating protocol parsing control
`logic in accordance with one form of the present invention.
`FIG. 13 is a flow chart of the field parsing control logic
`in accordance with one form of the present invention.
`FIG. 14 is a flow chart representing value verification.
`error checking. next protocol and branch determination
`control logic in accordance with one form of the present
`invention.
`
`FIG. 15 is a flow chart representing field filtering control
`logic in accordance with one form of the present invention.
`FIG. 16 is a flow chart illustrating field value extraction
`and varying control logic in accordance with one form of the
`present invention.
`
`DESCRIPTION OF PREFERRED
`EMBODIMENTS
`
`Referring now to FIG. 1. a network interface system in
`accordance with one form of the present invention. generally
`referred to as 10. may be implemented in a network device
`including input devices 12. data storage devices 14. analysis
`control logic 16 for facilitating the input. storage. retrieval.
`and analysis of network frames. and output devices 18 for
`forwarding frames or displaying or printing the results of
`analyses. A data storage device 14 may include a data file 20
`of network frames having n protocol data records. wherein
`each data record contains data stored in a plurality of
`predefined fields. Protocol description files 22 also may be
`stored in the data storage device 14. The protocol description
`
`6
`files 22 may include a protocol control record and n field
`sub-records. which together may describe a subset of a
`network protocol and include rules for analyzing that pro-
`tocol.
`
`The network device control logic 16 is capable of retriev-
`ing a subset of network frames from the input devices 12 or
`data files 20 which satisfy one or more criteria based upon
`extracted field values and filtering criteria contained in one
`or more of the protocol description files 22. The network
`device control logic 16 also includes logic for determining
`frame and protocol header lengths. gathering statistics. veri-
`fication and error checking. determining routes. varying
`values. and formatting output.
`
`A personal computer or conventional network device.
`such as an IBM PC (or compatible). Apple Macintosh®. or
`any Unix®. or Zenix® workstation. protocol analyzer.
`bridge. router. traffic generator. or similar system may be
`utilized in accordance with the system of the present inven-
`tion. The data input devices 12 may comprise any of a
`number of commercially available network interface devices
`and may include a conventional keyboard or mouse if
`required. The data storage devices 14 may take the form of
`any of a number of commercially available data storage
`options (such as RAM. ROM. EPROM. or various sized
`fixed disk drives). and the data output devices 18 may
`comprise any of a number of commercially available user
`interface devices. such as CR1‘ displays. monitors. network
`interface devices and/or printers (if required). The analysis
`control logic 16 rrmy be implemented as a computer program
`written in any language suitable for systems programming or
`may be implemented in hardware if better performance is
`required.
`In one presently preferred form.
`the analysis
`control logic 16 may be implemented via the programming
`files set forth in the attached microfiche Appendix. which is
`incorporated herein. However. those skilled in the art will
`appreciate that the analysis control logic 16 might equiva-
`lently be implemented in dedicated hardware using. for
`example. one or more application specific integrated circuits
`(“ASICs") or one or more field programmable gate arrays
`(“FPGAs”).
`
`The network interface system 10 of the present invention
`is preferably implemented on a personal computer. work-
`station or conventional network device having a 32-bit or
`larger bus and register set. an optional math co-processor. at
`least one megabyte of available RAM. and for personal
`computer and workstation applications. a fixed disk having
`at least 10 megabytes of available storage space. As shown
`in the microfiche appendix. the analysis control logic 16 may
`be programmed in the C-H- language. with abstract data
`types defined for statistics gathering. value verification. next
`protocol determination. filtering. varying values. checksum-
`ming and route determination capabilities. and protocol
`control and field records.
`
`Referring now to FIG. 2. a data file 20 in accordance with
`one form of the present invention may include a plurality (n)
`of protocol header data records and optional Data and Pad
`records. Each protocol record contains data organized into a
`plurality of predefined fields. Each field comprises a collec-
`tion of 1 or more contiguous bits and includes a set of valid
`values for that field. For example. a particular protocol
`specification might include a 6 bit header length field that
`limits the protocol header length to values between 20 and
`60 inclusive. thereby excluding values less than 20 and
`values from 61 to 64.
`
`The number of possible contiguous bit fields for a pro-
`tocol header of length N bits where N is greater than 1 can
`be expressed by the following formula:
`
`10
`
`20
`
`25
`
`30
`
`35
`
`45
`
`SO
`
`55
`
`65
`
`Petitioners‘ EX1012 Page 24
`
`Petitioners' EX1012 Page 24
`
`

`
`5.793.954
`
`8
`
`7
`
`N
`
`Ntunber of Possible Fielcb = 121 i
`
`It will be appreciated by those skilled in the art that any
`possible organization of fields for any possible protocol
`specification is contemplated for the network interface sys-
`tem 10 of the present invention.
`Referring now to FIG. 3. a protocol description file 22 in
`accordance with one form of the present invention may
`include a protocol control record. and a plurality (n) of field
`data records. In a particularly preferred embodiment. the
`protocol control record (shown below in Table 1) may define
`the overall structure of a network protocol and reference
`other information relating to the network protocol.
`
`10
`
`TABLE 3
`STATISTICS STRUCTURECLASS RECORD
`
`Olfset Name Description
`
`0-3
`pointer to user assigned name for statistic
`Stat.Name
`4-7
`pointer to derived smrcturelclass for accumulating
`Stat
`configured statistic
`
`The next protocol lookup records referenced in the field
`sub-record table (Table 2) at bytes 28-31 are preferably
`organized as shown in Table 4:
`
`TABLE 1
`
`PROTOCOL CONTROL RECORD
`
`
`
` Offset Name Description
`
`name_length
`0-3
`protocol_name
`4-7
`filename
`8-ll
`12-15 numBits
`16-17 numFie1ds
`18-19 curField
`20-23 outFlag
`24-27 dbW
`28-31 fields
`32-25 optional
`
`length of protocol name in bytes including NULL terminator
`name of protocol control record is describing
`name of tile control record is stored in
`total bit length of protocol header control record is describing
`number of fields requirai to describe protocol header
`index of field currently referenced
`flag indicating template has been output to file
`display bit width for protocol header display
`field records that describe protocol hearhr
`pointer to option control record to use

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