throbber
I
`
`'Z
`
`coioe
`
`PATENT NUMBER
`
`6TT 1646
`
`I
`
`Certiticalle
`
`NOV 1. 6 Z004
`
`of' 6or,r,ection
`
`Certif "co
`
`I
`
`te
`
`SEP 2 12004
`
`PTO-2040
`12/99
`
`of Correction
`
`ISSUING CLASSIFICATION
`
`ORIGINAL
`
`CROSS REFERENCE(S)
`
`CLASS
`
`SUSCL&W"
`
`CLASS
`
`SUBCLASS (ONE SUBCLASS PER BLOCK)
`
`;? o
`INTERNATIONAL CVAIFIC'A'TION
`
`3s
`
`7//
`
`Continued on issue Slip inside File Jacket
`
`x
`
`I
`
`Form PTO-436A
`(Rev. 6199)
`
`ISSUE FtE IN FILE
`
`FILED WITH: E] DISK (CRF) [] FICHE [] CD-ROM
`
`(Attached in pocket on right inside flap)
`
`(FACE)
`
`Petitioners' EX1013 Page 1
`
`

`
`PATENT APPLICATION
`
`JC836 U.S. PTO
`
`1111111111111111111111111111111111111111111
`
`09608266
`
`CONTENTS
`
`Date Received
`(incl. C. of M.)
`or
`Date Mailed
`
`42.
`
`43.
`
`44.
`
`45.
`
`46.
`
`47.
`
`P14 48.
`49.
`
`50.
`
`-4 - /ZL-:o
`q
`
`/
`
`/jz-
`
`AppfidafiorIXrflol pa pers.
`
`in,\ klc
`
`4# e-S
`
`4.7r D,5 Wl KE-f 15 r,
`
`e- e s
`
`41,
`
`61-9
`
`Ir-It
`
`INITIALS
`
`JUL
`
`Date Rerelved
`(Incl. C' of M.)
`I
`or
`Date Mailed
`
`53.-
`
`54._7
`2.w
`
`60.-
`
`61.
`
`65.
`
`69.
`
`76.
`
`80,
`
`(LEFT OUTSIDE)
`
`Petitioners' EX1013 Page 2
`
`

`
`I
`
`Page I of I
`
`UNITED STATEs PATENT AND TRADEMARK OFFIGE
`
`COMMISSIONER FOR PATENTS
`uNITIED ZOA1 ES, r-ATENT AND IRADEMARK OFFICF
`WASHING'TON, D.C, 20231
`www.uspto.gov
`
`1111111111 IM 11111111111111111111111111111111111111 IN
`
`Bib Data Sheet\\
`
`SERIAL NUMBER
`09/608,266
`
`FILING DATE
`
`06/30/2000
`
`RULE
`
`APPLICANTS
`X;
`Haig A. Sarkissian, San Ant
`00X
`eA
`Russell S. Dietz, S; n
`
`CLASS
`
`51-
`
`GROUP ART UNIT
`2731
`
`ATTORNEY
`DOCKETNO.
`AP
`PT-QOf-4
`
`I
`
`L4 96
`
`CONTINUING DAT
`THISAPPL
`1) Z
`PLICATIONS
`
`**.FOREIGN
`
`AIMS BEINEFIT OF 60/141,903 06130/19919
`
`FO
`IF REQ
`GRAN D
`
`ED, FOREIGN FILING LICENSE
`09/01/2000
`
`10011'
`
`WX
`
`Li yes
`
`Ll yes
`
`,,Allo
`
`ce
`
`n
`
`no Ll Met after
`
`SHEETS
`STATE OR
`COUNTRY DRAWING
`TX
`21
`
`TOTAL
`CLAIMS
`20
`
`INDEPENDENT
`CLAIMS
`3
`
`p
`
`'wForeign ' iority claimed
`C
`
`35 USC 119 (a-d) conditions
`met
`
`Verified and
`Acknowledged
`ADDRESS
`
`Dov Rosenfel
`
`5507 Colleg Avenue
`
`Suite 2
`
`Oakland , A 94618
`
`sclqTature
`
`,- 9-
`
`Initials
`
`:,sociative cache structure for lookups and updates of flow records in a network monitor
`
`FILING FEE FEES: Authoritv has been aiven in Paner
`RECEIVED
`to charge/credit DEPOSIT AC-COUNT
`No.
`No.
`840
`for following:
`
`All Fees
`
`Ll 1. 16 Fees ( Filing
`
`T' 17 Fees ( Processing Ext. of
`
`Ll 1. 18 Fees( Issue
`
`Ll Other
`
`Ll Credit
`
`file://C:\APPS\PreExam\correspondence\IA.xmI
`
`11/2/00
`
`Petitioners' EX1013 Page 3
`
`

`
`0) - 03- 0 0
`
`m
`
`IN THE U.S. PATENT AND TRADEMARK OFFICE
`Application Transmittal Sheet
`
`CS1,1110V6
`
`po
`
`me.4M 0
`
`Box Patent Application
`ASSISTANT COMMISSIONER FOR PATENTS
`Washington, D.C. 20231
`
`Dear Assistant Comniissioner:
`
`Transniitted herewith is the patent application of
`
`OurRef./DocketNo.: APPT-0014
`01, m
`a$%93
`
`u
`
`Last Name
`
`Sarkissian
`
`Dietz
`
`E14VENTOR(s)/APPLICANT(s)
`First Name, MI
`Residence (City and State or Country)
`
`Haig A.
`
`Russell S.
`
`San Antonio, Texas
`San Jose, CA
`
`TITLE OF THE INVENTION
`
`ASSOCIATIVE CACHE STRUCTURE FOR LOOKUPS AND UPDATES OF FLOW RECORDS IN A
`NETWORK MONITOR
`
`CORRESPONDENCE ADDRESS AND AGENT FOR APPLICANT(S)
`
`Dov Rosenfeld, Reg. No. 38,387
`
`5507 College Avenue, Suite 2
`Oakland, California, 94618
`
`Telephone: (510) 547-3378; Fax: (510) 653-7992
`
`ENCLOSED APPLICATION PARTS (check all that apply)
`
`Included are:
`*
`*
`
`65
`21
`
`sheet(s) of specification, claims, and abstract
`
`sheet(s) of formal Drawing(s) with a submission letter to the Official Draftsperson
`
`Information Disclosure Statement.
`Form PTO- 1449: INFORMATION DISCLOSURE CITATION IN ANAPPLICATION, together with a
`copy of each references included in PTO- 1449.
`
`Declaration and Power of Attorney
`
`An assignment of the invention to Apptitude, Inc.
`
`A letter requesting recordation of the assignment.
`
`An assignment Cover Sheet.
`
`Additional inventors are being named on separately numbered sheets attached hereto.
`
`*
`This application has:
`
`Return postcard.
`
`a small entity status. A verified statement:
`
`is enclosed
`
`was already filed.
`
`The fee has been calculated as shown in the following page.
`
`I
`
`Certificate of Mailing under 37 CFR 1.10
`
`1
`
`1
`
`I hereby certify that this application and all attachments are being deposited with the United States Postal
`Service as Express Mail (Express Mail Label: E1417961895US in an envelope addressed to Box Patent
`
`Applicat'
`
`Assi tant Comniissioner for Patents, Washington, D.C. 20231 on
`
`Date:
`
`gne
`
`N
`
`eov Rosenfeld,Reg.N
`
`o.38687
`
`Petitioners' EX1013 Page 4
`
`

`
`SUBMISSION DOCUMENT
`ATTORNEY DOCKET NO. APPT-001-4
`
`Page 2
`
`TOTAL CLAMS
`
`NO.OFEXTRA
`CLAMS
`
`TOTAL
`CLAIMS
`
`INDEP.
`CLAIMS
`
`20
`
`3
`
`0
`
`0
`
`I
`
`BASIC APPLICATION FEE:
`
`TOTAL FEES PAYABLE:
`
`RATE
`
`$18
`
`$78
`
`EXTRA CLAIN4
`FEE
`
`$ 0.00
`
`$ 0.00
`
`$690.00
`
`$690.00
`
`METHOD OF PAYMENT
`
`A check in the amount of
`is attached for application fee and presentation of claims.
`A check in the amount of $ 40.0 is attached for recordation of the Assigmnent.
`The Conunissioner is hereby authorized to charge payment of the any missing filing or other fees
`required for this filing or credit any overpayment to Deposit Account No. 50-0292
`(A DUPLICATE OF THIS TRANSMITTAL IS ATTACHED):
`
`Respectfully Submitted,
`
`Date
`
`Dov Rosenfeld, Reg. No. 38687
`
`Correspondence Address:
`Dov Rosenfeld
`5507 College Avenue, Suite 2
`Oakland, California, 94618
`Telephone: (510) 547-3378; Fax: (510) 653-7992
`
`Petitioners' EX1013 Page 5
`
`

`
`OurRef/DocketNo.: APPT-001-4
`
`ASSOCIATIVE CACHE STRUCTURE FOR LOOKUPS AND UPDATES OF FLOW
`RECORDS IN A NETWORK MONITOR
`
`Inventor(s):
`
`SARKISSIAN, Haig A.
`San Antonio, Texas
`
`DEETZ, Russell S.
`San Jose, CA
`
`Certiflcate of Mailing under 37 CFR 1.10
`I hereby certify that this application and all attachments are being deposited with the United States Postal Service as Express Mail
`(Express Mail Label: E1417961895US in an envelope addressed to Box Patent Application, Assistant Commissioner for Patents,
`C. 20231 on.
`
`Wash
`Date.
`
`Signed
`Name: Dovfo-s-enfeld, Reg. No. 38687
`
`Petitioners' EX1013 Page 6
`
`

`
`1
`
`ASSOCIATIVE CACHE STRUCTURE FOR LOOKUPS AND
`UPDATES OF FLOW RECORDS IN A NETWORK MONITOR
`
`CROSS-REFERENCE TO RELATED APPLICATION
`
`This application claims the benefit of U.S. Provisional Patent Application Serial No.:
`
`5
`
`60/141,903 for METHOD AND APPARATUS FOR MONITORING TRAFFIC IN A
`
`NETWORK to inventors Dietz, et al., filed June 30, 1999, the contents of which are
`
`incorporated herein by reference.
`
`This application is related to the followinAi-S. patent applications, each filed
`
`concurrently with the present application, and each assigned to Apptitude, Inc., the
`
`10
`
`assignee of the present invention:
`
`ho. (#( (.6 It w
`U.S. PatentAppU"4omSekfti-?ie-,,&,ki,
`
`for METHOD AND APPARATUS FOR
`
`MONITORING TRAFFIC 11%; A NETWORK, to inventors Dietz, et al., 94ed iiatie 90&
`
`29GO,
`
`reference.
`
`and incorporated herein by
`
`No. (o
`U.S. PateniLApp4ee
`
`15
`
`"erifti Newuc6N,
`
`for PROCESSING PROTOCOL
`
`SPECIFIC INFORMATION IN PACKETS SPECMMD BY A PROTOCOL
`
`DESCRIPTION LANGUAGE, to inventors Koppenhaver, et al., filed J4aae 99, i994,-
`
`and incorporated herein by
`
`C,
`
`C-1
`
`reference.
`
`20
`
`U.S. Patent Application Serial No.
`
`41%
`
`Ol/ go e, /a &
`for RE-USING INFORMATION FROM
`
`DATA TRANSACTIONS FOR MAINTAINING STATISTICS IN NETWORK
`
`MONITORING, to inventors Dietz, et al., filed itifte 39-, 2069_
`
`APPF @944, and incorporated herein by reference.
`
`016 oe ;L 67
`U.S. Patent Application Serial No;-1i--d, for STATE PROCESSOR FOR
`
`25
`
`PATTERN MATCHING IN A NETWORK MONITOR DEVICE, to inventors
`
`(cid:173)5
`11) 0 D -,,A,y/A-e(cid:173) RPifRwPwqP N-tifftber-A43PET-004,
`Sarkissian, et al., filed juno ;Qj-2,
`
`and incorporated herein by reference.
`
`FIELD OF INVENTION
`
`The present invention relates to computer networks, specifically to the real-time
`
`0
`
`Petitioners' EX1013 Page 7
`
`

`
`elucidation of packets communicated within a data network, including classification
`
`2
`
`according to protocol and application program.
`0
`
`BACKGROUND
`
`There has long been a need for network activity monitors. This need has become
`
`especially acute, however, given the recent popularity of the Intemet and other
`
`interconnected networks. In particular, there is a need for a real-time network monitor
`
`that can provide details as to the application programs being used. Such a monitor should
`
`enable non-intrusive, remote detection, characterization, analysis, and capture of all
`
`information passing through any point on the network (i.e., of all packets and packet
`
`10
`
`streams passing through any location in the network). Not only should all the packets be
`
`detected and analyzed, but for each of these packets the network monitor should
`
`determine the protocol (e.g., http, ftp, H.323, VPN, etc.), the application/use within the
`
`protocol (e.g., voice, video, data, real-time data, etc.), and an end user's pattem of use
`
`within each application or the application context (e.g., options selected, service
`
`15
`
`delivered, duration, time of day, data requested, etc.). Also, the network monitor should
`
`not be reliant upon server resident information such as log files. Rather, it should allow a
`
`user such as a network adn-iinistrator or an Intemet service provider (ISP) the means to
`
`measure and analyze network activity objectively; to custorriize the type of data that is
`
`collected and analyzed; to undertake real time analysis; and to receive timely notification
`
`20
`
`of network problems.
`
`(11
`
`Related and incorporated by reference U.S. Patent
`
`for
`
`METHOD AND APPARATUS FOR MONITORING TRAFFIC INA NETWORK, to
`
`go.
`
`inventors Dietz, et al, Aftar-aeyAgeof Peekm A.=-494-4, describes a network monitor
`
`that includes carrying out protocol specific operations on individual packets including
`
`25
`
`extracting information from header fields in the packet to use for building a signature for
`
`identifying the conversational flow of the packet and for recognizing future packets as
`
`belonging to a previously encountered flow. A parser subsystem includes a parser for
`
`recognizing different pattems in the packet that identify the protocols used. For each
`
`protocol recognized, a slicer extracts important packet elements from the packet. These
`
`30
`
`form a signature (i.e., key) for the packet. The slicer also preferably generates a hash for
`
`rapidly identifying a flow that may have this signature from a database of known flows.
`
`Petitioners' EX1013 Page 8
`
`

`
`The flow signature of the packet, the hash and at least some of the payload are
`
`passed to an analyzer subsystem. In a hardware embodiment, the analyzer subsystem
`
`includes a unified flow key buffer (UFKB) for receiving parts of packets from the parser
`
`subsystem and for storing signatures in process, a lookup/update engine (LUE) to lookup
`
`a database of flow records for previously encountered conversational flows to determine
`
`whether a signature is from an existing flow, a state processor (SP) for performing state
`
`processing, a flow insertion and deletion engine (FIDE) for inserting new flows into the
`
`database of flows, a memory for storing the database of flows, and a cache for speeding
`
`up access to the memory containing the flow database. The LUE, SP, and FIDE are all
`
`10
`
`coupled to the UFKB, and to the cache.
`
`Each flow-entry includes one or more statistical measures, e.g., the packet count
`
`related to the flow, the time of arrival of a packet, the time differential.
`
`In the prefeffed hardware embodiment, each of the LUE, state processor, and
`
`FIDE operate independently from the other two engines. The state processor performs
`
`15
`
`one or more operations specific to the state of the flow.
`
`Because of the high speed that packets may be entering the system, it is desirable
`
`to maximize the hit rate in a cache system. Typical prior-art cache systems are used to
`
`expediting memory accesses to and from microprocessor systems. Various mechanisms
`
`are available in such prior art systems to predict the lookup such that the hit rate can be
`
`20 maximized. Prior art caches, for example, can use a lookahead mechanism to predict
`
`both instruction cache lookups and data cache lookups. Such lookahead mechanisms are
`
`not available for a cache subsystem for the packet monitoring application. When a new
`
`packet enters the monitor, the next cache access, for example from the lookup engine,
`may be for a totally different conversational flow than the last cache lookup, and there is
`no way ahead of time of knowing what flow the next packet will belong to.
`
`25
`
`Thus there is a need in the art for a cache subsystem suitable for use in a packet
`
`monitor. One desirable property of such a cache system is a least recently used (LRU)
`
`replacement policy that replaces the LRU flow-entry when a cache replacement is
`
`needed. Replacing least recently used flow-entries is preferred because it is likely that a
`
`30
`
`packet following a recent packet will belong to the same flow. Thus, the signature of a
`
`new packet will likely match a recently used flow record. Conversely, it is not highly
`
`).
`
`x
`
`Petitioners' EX1013 Page 9
`
`

`
`4
`
`likely that a packet associated with the least recently used flow-entry will soon arrive.
`
`A hash is often used to facilitate lookups. Such a hash may spread entries
`
`randomly in a database. In such a case, a associative cache is desirable.
`
`There thus is a need for a associative cache subsystem that also includes a LRU
`
`replacement policy.
`
`SUMMARY
`
`Described herein is an associative cache system for looking up one or more
`
`elements of an extemal memory. The cache system comprises a set of cache memory
`
`elements coupled to the extemal memory, a set of content addressable memory cells
`
`10
`
`(CAMs) containing an address and a pointer to one of the cache memory elements, and
`
`including- a matching circuit having an input such that the CAM asserts a match output
`TW e,
`when the input is the same as the address in the CAM cell
`Whi& cache memory
`.
`wh
`element a particular CAM points to changes over time. In the preferred implementation,
`
`the CAMs are connected in an order from top to bottom, and the bottom CAM points to
`
`15
`
`the least recently used cache memory element.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Although the present invention is better understood by referring to the detailed
`
`preferred embodiments, these should not be taken to limit the present invention to any
`
`specific embodiment because such embodiments are provided only for the purposes of
`
`20
`
`explanation. The embodiments, in tum, are explained with the aid of the following
`
`figures.
`
`FIG.Yis a functional block diagram of a network embodiment of the present
`
`"0'W-in which a molnitb"'iis connected to analyze packets passing at a connection
`
`25
`
`FIG
`
`a diagram representing an example of some of the packets and their
`
`formats
`
`might be exchanged in starting, as an illustrative example, a conversational
`
`a client and server on a network being monitored and analyzed. A pair of
`
`flow signatures particular to this example and to embodiments of the present invention is
`
`also illustrated. This represents some of the possible flow signatures that can be
`
`Petitioners' EX1013 Page 10
`
`

`
`5
`
`generated and used in the process of analyzing packets and of recognizing the particular
`
`server applications_ksrproduce the discrete application packet exchanges.
`
`is a functional block diagram of a process embodiment of the present
`
`that can operate as the packet monitor shown in FIG. 1. This process may be
`
`5
`
`ted in software orhardware.
`
`FIG. 4 is'41A
`
`.owchart of a high-level protocol language compiling and
`
`optimizatlyp7pro=,
`41K
`monitgoffig packets
`
`s, which in one embodiment may be used to generate data for
`
`accorojag'6 versions of the present invention.
`
`FIG. ;5is
`
`of a packet parsing process used as part of the parser in an
`
`io
`
`embodimey of the
`
`packet monitor.
`
`FIG. 6 iWf
`
`of a packet element extraction process that is used as part of
`
`the parserj&an err,
`
`'of the inventive packet monitor.
`
`FIG. 7 is;d'
`
`of a flow-signature building process that is used as part of
`
`the parserlin the in
`
`monitor.
`
`15
`
`"FIG. 8,jeaflowchart of a monitor lookup and update process that is used as part
`
`of the anAzer in an ern'qdiifient of the inventive packet monitor.
`
`FIG. 9 ip.flowchart of an exemplary Sun Microsystems Remote Procedure Call
`
`',io7ean
`a pplicat
`
`may be recorg""zed by the inventive packet monitor.
`ni
`
`,,f, FIG. 10J19"a functional block diagram of a hardware parser subsystem including
`
`20
`
`the pattern4ecognizer and extractor that can form part of the parser module in an
`
`erabod,A" nent of the inv"'entive packet monitor.
`
`,,III to a functional'block di4gram of a hardware analyzer includirig a state
`
`processor that can f9pi
`
`,
`
`part of an embodiment of the inventive packet monitor.
`
`FIG.
`
`S"
`
`s a functional block diagram of a flow insertion and deletion engine
`
`25
`
`process th
`
`can form part of the analyzer in an embodiment of the inventive packet
`
`FIG. 13
`
`flowchart of a state processing process that can form part of the
`
`analyzer in
`
`idiment of the inventive packet monitor.
`
`Petitioners' EX1013 Page 11
`
`

`
`I
`
`R
`
`FIG. 14
`
`zgimple functional block diagram of a process embodiment of the
`
`present invpdi(
`
`that can operate as the packet monitor shown in FIG. 1. This process
`
`may b implem
`
`in sottvare.
`
`FIG. 15
`
`oer
`a functional block diagram of how the packet monitor of FIG. 3 (and
`
`5
`
`FIGS. 10 fid 11) may operate on, a network with a processor such as a microprocessor.
`
`FIG. 16 is an
`
`of the top (MAC) layer of an Ethemet packet and some of
`
`I/
`
`the elements th'at'nay be extracted to form a signature according to one aspect of the
`
`invent on.
`
`FIG. l7kig'an example of the header of an Ethertype type of Ethemet packet of
`
`io
`
`FIG 16 an
`
`ome of the eleme, ts that may be extracted to form a signature according to
`
`one as
`
`ct of the inw,-rition.
`
`FIG,
`-7
`shown i-nFIGs. 16 and 17A, and some of the elements that may be extracted to form a
`
`B is an example of an IP packet, for example, of the Ethertype packet
`
`signature according to o $,agpect of the invention.
`
`15
`
`FIG. 1
`
`a three dimensional structure that can be used to store elements of
`
`the pattem,
`
`1
`
`c
`
`and extraction database used by the parser subsystem in accordance to
`
`one em
`
`im
`
`'
`
`oftheinveuu
`
`FIG. 18B i§Arn altemate form of storing elements of the pattem, parse and
`
`a*6ase used by the parser subsystem in accordance to another embodiment
`extraction d
`
`20
`
`of the invtn/i
`
`on.
`
`FIG.
`
`is a block diagrafh of the cache memory part of the cache subsystem
`
`1115 of 06
`
`analyzerjuesystem of FIG. 11.
`
`FIG. 26'ls a block diagram,of the cache memory controller and the cache CAM
`
`controllef of the cache s;
`
`ystem.
`
`25
`
`FIG. 2 1 js
`
`block diagram of one implementation of the CAM array of the cache
`
`subsystem, Pl 15.
`
`I
`
`Petitioners' EX1013 Page 12
`
`

`
`7
`
`DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
`
`Note that this document includes hardware diagrams and descriptions that may
`
`include signal names. In most cases, the names are sufficiently descriptive, in other cases
`
`however the signal names are not needed to understand the operation and practice of the
`
`invention.
`
`Operation in a Network
`
`FIG. I represents a system embodiment of the present invention that is referred to
`
`herein by the general reference numeral 100, The system 100 has a computer network
`
`102 that communicates packets (e.g., EP datagrams) between various computers, for
`
`10
`
`example between the clients 104-107 and servers 110 and 112. The network is shown
`
`schematically as a cloud with several network nodes and links shown in the interior of
`
`the cloud. A monitor 108 examines the packets passing in either direction past its
`
`connection point 121 and, according to one aspect of the invention, can elucidate what
`
`application programs are associated with each packet. The monitor 108 is shown
`
`15
`
`examining packets (i.e., datagrams) between the network interface 116 of the server 110
`
`and the network. The monitor can also be placed at other points in the network, such as
`
`connection point 123 between the network 102 and the interface 118 of the client 104, or
`some other location, as indicated schematically by connection point 125 somewhere in
`
`network 102. Not shown is a network packet acquisition device at the location 123 on
`the network for converting the physical information on the network into packets for input
`
`into monitor 108. Such packet acquisition devices are common.
`
`Various protocols may be employed by the network to establish and maintain the
`
`required communication, e.g., TCP/EP, etc. Any network activityfor example an
`
`application program run by the client 104 (CLIENT 1) communicating with another
`running on the server 110 (SERV-ER 2)will produce an exchange of a sequence of
`packets over network 102 that is characteristic of the respective progr'ams and of the
`network protocols. Such characteristics may not be completely revealing at the
`
`20
`
`25
`
`individual packet level. It may require the analyzing of many packets by the monitor 108
`
`to have enough information needed to recognize particular application programs. The
`
`30
`
`packets may need to be parsed then analyzed in the context of various protocols, for
`
`b
`
`Petitioners' EX1013 Page 13
`
`

`
`example, the transport through the application session layer protocols for packets of a
`
`type conforming to the ISO layered network model.
`
`Communication protocols are layered, which is also referred to as a protocol
`
`stack. The ISO (Intemational Standardization Organization) has defined a general model
`
`that provides a framework for design of communication protocol layers. This model,
`
`shown in table form below, serves as a basic reference for understanding the
`
`functionality of existing communication protocols.
`
`ISO MODEL
`
`Layer
`
`Functionality
`
`Example
`
`7
`
`6
`
`5
`
`4
`
`3
`
`2
`
`1
`
`Application
`
`Telnet, NFS, Novell NCP, HTTP,
`
`H.323
`
`Presentation
`
`XDR
`
`Session
`
`RPC, NETBIOS, SNMP, etc.
`
`Transport
`
`TCP, Novel SPX, UDP, etc.
`
`Network
`
`EP, Novell IPX, VIP, AppleTalk, etc.
`
`Data Link
`
`Network Interface Card (Hardware
`
`Interface). MAC layer
`
`Physical
`
`Ethemet, Token Ring, Frame Relay,
`
`ATM, Tl (Hardware Connection)
`
`Different conununication protocols employ different levels of the ISO model or
`io may use a layered model that is similar to but which does not exactly conform to the ISO
`- - -------------------- ,
`model. A protocol iri a certain layer may not be visible to protocols employed at other
`
`layers. For example, an application (Level 7) may not be able to identify the source
`
`computer for a communication attempt (Levels 2-3).
`
`In some communication arts, the term "frame" generally refers to encapsulated
`
`15
`
`data at OSI layer 2, including a destination address, control bits for flow control, the data
`
`or payload, and CRC (cyclic redundancy check) data for error checking. The term
`
`Petitioners' EX1013 Page 14
`
`

`
`W
`
`"packet" generally refers to encapsulated data at OSI layer 3. In the TCP/IP world, the
`
`term "datagram" is also used. In this specification, the term "packet" is intended to
`
`encompass packets, datagrams, frames, and cells. In general, a packet format or frame
`
`format refers to how data is encapsulated with various fields and headers for
`
`transmission across a network. For example, a data packet typically includes an address
`
`destination field, a length field, an error coffecting code (ECC) field, or cyclic
`
`redundancy check (CRC) field, as well as headers and footers to identify the beginning
`
`and end of the packet. The terms "packet format" and "frame format," also refeffed to as
`
`"cell format," are generally synonymous.
`
`10
`
`Monitor 108 looks at every packet passing the connection point 121 for analysis.
`
`However, not every packet carries the same information useful for recognizing all levels
`
`of the protocol. For example, in a conversational flow associated with a particular
`
`application, the application will cause the server to send a type-A packet, but so will
`
`another. If, though, the particular application program always follows a type-A packet
`
`15
`
`with the sending of a type-B packet, and the other application program does not, then in
`
`order to recognize packets of that application's conversational flow, the monitor can be
`
`available to recognize packets that match the type-B packet to associate with the type-A
`
`packet. If such is recognized after a type-A packet, then the particular application
`
`program's conversational flow has started to reveal itself to the monitor 108.
`
`20
`
`Further packets may need to be examined before the conversational flow can be
`
`identified as being associated with the application program. Typically, monitor 108 is
`
`simultaneously also in partial completion of identifying other packet exchanges that are
`
`parts of conversational flows associated with other applications. One aspect of monitor
`
`108 is its ability to maintain the state of a flow. The state of a flow is an indication of all
`
`25
`
`previous events in the flow that lead to recognition of the content of all the protocol
`
`levels, e.g., the ISO model protocol levels. Another aspect of the invention is fonning a
`
`signature of extracted characteristic portions of the packet that can be used to rapidly
`
`identify packets belonging to the same flow.
`
`In real-world uses of the monitor 108, the number of packets on the network 102
`
`30
`
`passing by the monitor 108's connection point can exceed a rnillion per second.
`
`Consequently, the monitor has very little time available to analyze and type each packet
`
`O
`
`Petitioners' EX1013 Page 15
`
`

`
`10
`
`and identify and maintain the state of the flows passing through the connection point.
`
`The monitor 108 therefore masks out all the unimportant parts of each packet that will
`
`not contribute to its classification. However, the parts to mask-out will change with each
`
`packet depending on which flow it belongs to and depending on the state of the flow.
`
`The recognition of the packet type, and ultimately of the associated application
`
`programs according to the packets that their executions produce, is a multi-step process
`
`within the monitor 108. At a first level, for example, several application programs will
`
`all produce a first kind of packet. A first "signature" is produced from selected parts of a
`
`packet that will allow monitor 108 to identify efficiently any packets that belong to the
`
`10
`
`same flow. In some cases, that packet type may be sufficiently unique to enable the
`
`monitor to identify the application that generated such a packet in the conversational
`
`flow. The signature can then be used to efficiently identify all future packets generated in
`
`traffic related to that application.
`
`In other cases, that first packet only starts the process of analyzing the
`
`15
`
`conversational flow, and more packets are necessary to identify the associated
`
`application program. In such a case, a subsequent packet of a second typebut that
`potentially belongs to the same conversational flowis recognized by using the
`signature. At such a second level, then, only a few of those application programs will
`
`have conversational flows that can produce such a second packet type. At this level in
`
`20
`
`the process of classification, all application programs that are not in the set of those that
`
`lead to such a sequence of packet types may be excluded in the process of classifying the
`
`conversational flow that includes these two packets. Based on the known pattems for the
`
`protocol and for the possible applications, a signature is produced that allows recognition
`
`of any future packets that may follow in the conversational flow.
`
`25
`
`It may be that the application is now recognized, or recognition may need to
`
`proceed to a third level of analysis using the second level signature. For each packet,
`
`therefore, the monitor parses the packet and generates a signature to determine if this
`
`signature identified a previously encountered flow, or shall be used to recognize future
`
`packets bel6nging to the same conversational flow. In real time, the packet is further
`
`30
`
`analyzed in the context of the sequence of previously encountered packets (the state), and
`
`of the possible future sequences such a past sequence may generate in conversational
`
`Petitioners' EX1013 Page 16
`
`

`
`11
`
`flows associated with different applications. A new signature for recognizing future
`
`packets may also be generated. This process of analysis continues until the applications
`
`are identified. The last generated signature may then be used to efficiently recognize
`
`future packets associated with the same conversational flow. Such an arrangement makes
`
`it possible for the monitor 108 to cope with millions of packets per second that must be
`
`inspected.
`
`Another aspect of the invention is adding Eavesdropping. In altemative
`
`embodiments of the present invention capable of eavesdropping, once the monitor 108
`
`has recognized the executing application programs passing through some point in the
`
`10
`
`network 102 (for example, because of execution of the applications by the client 105 or
`
`server 110), the monitor sends a message to some general purpose processor on the
`
`network that can input the same packets from the same location on the network, and the
`
`processor then loads its own executable copy of the application program and uses it to
`
`read the content being exchanged over the network. In other words, once the monitor 108
`
`15
`
`has accomplished recognition of the application program, eavesdropping can commence.
`
`The Network Monitor
`
`FIG. 3 shows a network packet monitor 300, in an embodiment of the present
`
`invention that can be implemented with computer hardware and/or software. The system
`
`300 is similar to monitor 108 in FIG. 1. A packet 302 is examined, e.g., from a packet
`
`PA
`
`acquisition device at the location 121 in network 102 (FIG. 1), and the packet evaluated,
`
`for example in an attempt to determine its characteristics, e.g., all the protocol
`
`information in a multilevel model, including what server application produced the
`
`packet.
`
`The packet acquisition device is a conunon interface that converts the physical
`
`25
`
`signals and then decodes them into bits, and into packets, in accordance with the
`
`particular network (Ethemet, frame relay, ATM, etc.). The acquisition device indicates to
`
`the monitor 109 the type of network of the acquired packet or packets.
`
`Aspects shown here include: (1) the initialization of the monitor to generate what
`
`30
`
`operations need to occur on packets of different typesaccomplished by compiler and
`optimizer 310, (2) the processingparsing and extraction of selected portionsof
`packets to generate an identifying signatureaccomplished by parser subsystem 301,
`
`\t
`
`Petitioners' EX1013 Page 17
`
`

`
`and (3) the analysis of the packetsaccomplished by analyzer 303.
`
`12
`
`The purpose of compiler and optiniizer 3 10 is to provide protocol specific
`
`infonnation to parser subsystem 301 and to analyzer subsystem 303. The initialization
`
`occurs prior to operation of the monitor, and only needs to re-occur when new protocols
`
`are to be added.
`
`A flow is a stream of packets being exchanged between any two addresses in the
`
`network. For each protocol there are known to be several fields, such as the destination
`
`(recipient), the source (the sender), and so forth, and these and other fields are used in
`
`monitor 300 to identify the flow. There are other fields not important for identifying the
`
`10
`
`flow, such as checksums, and those parts are not used for identification.
`
`Parser subsystem 301 exaniines the packets using pattem recognition process 304
`
`that parses the packet and determines the protocol types and associated headers for each
`
`protocol layer that exists in the packet 302. An extraction process 306 in parser
`
`subsystem 301 extracts characteristic portions (signature information) from the packet
`
`15
`
`302. Both the pattem information for parsing and the related extraction operations, e.g.,
`
`extraction masks, are supplied from a parsing-pattem-structures and extraction-
`
`operations database (parsing/extractions database) 308 filled by the compiler and
`
`optiniizer 3 10.
`
`The protocol description language (PDL) files 336 describes both pattems and
`
`20
`
`states of all protocols that an occur at any layer, including how to interpret header
`
`information, how to detem-line from the packet header information the protocols at the
`next layer, and what information to extract for the purpose of identifying a flow, and
`
`ultimately, applications and services. The layer solections database 338 describes the
`particular layering handled by the monitor. That is, what protocols run on top of what
`
`25
`
`protocols at any layer level. Thus 336 and 338 combined describe how one would
`
`decode, analyze, and understand the information in packets, and, furthermore, how the
`
`information is layered. This information is input into compiler and optiniizer 3 10.
`
`When compiler and optimizer 3 10 executes, it generates two sets of intemal data
`
`structures. The first is th

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