throbber
(12) United States Patent
`Riddle et al.
`
`1111111111111111111111,111o!IIIIII1111111111111111111110111111
`
`US 6,412,000 B1
`Jun. 25, 2002
`
`(to) Patent No.:
`(45) Date of Patent:
`
`(54)
`
`METHOD FOR AUTOMATICALLY
`CLASSIFYING TRAFFIC IN A PACKET
`COMMUNICATIONS NETWORK
`
`(75)
`
`Inventors: Guy Riddle; Robert L. Packer, both
`of Los Gatos, CA (US)
`
`(73)
`
`Assignee: Packeteer, Inc., Cupertino, CA (US)
`
`5,495,426 A * 2/1996 Waclawsky et al.
`5,838,919 A * 11/1998 Schwaller et al.
`5,870,561 A * 2/1999 Jarvis et al.
`5,903,559 A * 5/1999 Acharya et al.
`5,923,849 A * 7/1999 Venkatraman
`6,028,842 A
`2/2000 Chapman et al.
`6,046,980 A * 4/2000 Packer
`6,137,782 A * 10/2000 Sharon et al.
`6,209,033 B1 * 3/2001 Datta et al.
`
`709/226
`709/224
`709/238
`709/236
`709/224
`370/252
`370/230
`709/238
`709/224
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`* cited by examiner
`
`(21)
`
`Appl. No.: 09/198,090
`
`(22)
`
`Filed:
`
`Nov. 23, 1998
`
`(60)
`
`(51)
`(52)
`
`(58)
`
`Related U.S. Application Data
`Provisional application No. 60/066,864, filed on Nov. 25,
`1997.
`
` GO6F 15/173
`Int. C1.7
` 709/224; 709/223; 709/230;
`U.S. Cl.
`709/238; 709/242; 370/230; 370/235; 370/252;
`370/355; 370/356
` 709/223-226,
`Field of Search
`709/230, 235-236, 238-239, 242, 246;
`370/229-230, 235, 252-253, 355-356,
`401, 466-469
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`Primary Examiner—Zarni Maung
`Assistant Examiner—Bharat Barot
`(74) Attorney, Agent, or Firm—Townsend and Townsend
`and Crew LLP; Kenneth R. Allen
`
`(57)
`
`ABSTRACT
`
`In a packet communication environment, a method is pro-
`vided for automatically classifying packet flows for use in
`allocating bandwidth resources by a rule of assignment of a
`service level. The method comprises applying individual
`instances of traffic classification paradigms to packet net-
`work flows based on selectable information obtained from a
`plurality of layers of a multi-layered communication proto-
`col in order to define a characteristic class, then mapping the
`flow to the defined traffic class. It is useful to note that the
`automatic classification is sufficiently robust to classify a
`complete enumeration of the possible traffic.
`
`5,251,152 A * 10/1993 Notess
`
` 709/224
`
`15 Claims, 7 Drawing Sheets
`
`401
`
`C RETURN
`
`PARSE FLOW
`SPECIFICATION
`FROM A PACKET
`OF THE FLOW
`
`402
`
`COMPARE FLOW
`SPECIFICATION
`WITH EXISTING
`CLASSIFICATION TREE
`
`7- 404
`
`406
`
`NO
`
`TRAFFIC
`MATCHES A
`CLASS?
`
`YES
`
`ENTER INTO A
`SAVED LIST
`CHARACTERISTICS
`OF THE TRAFFIC
`
`y - 408
`
`410
`
`412
`
`SUPPRESS
`DUPLICATES
`
`DETERMINE BYTE
`COUNT FOR TRAFFIC
`AND INCLUDE WITH
`TRAFFIC SPECIFICATION
`IN SAVED LIST
`
`C RETURN )
`
`403
`
`RETRIEVE CLASSIFIED
`TRAFFIC FROM
`SAVED LIST
`
`420
`
`YES
`
`SAVED
`TRAFFIC WELL
`KNOWN?
`
`--422
`
`NO
`
`SAVED
`TRAFFIC A SERVER
`AT UNREGISTERED
`IP PORT?
`
`NO
`
`YES
`
`426
`
`NO
`
`SAVED
`RAFFIC BELONGS
`TO A SERVICE
`GGREGAT
`
`425-,
`
`CREATE NEW
`TRAFFIC CLASS
`FOR SAVED
`TRAFFIC
`
`YES
`
`CREATE TRAFFIC CLASS
`MATCHING ALL
`COMPONENTS OF
`SERVICE AGGREGATE
`
`428
`
`NO
`
`TOO
`MANY CLASSES
`
`--432
`
`YES
`
`(NO MORE AUTO
`
`CLASSIFICATION]
`
`Cloudflare - Exhibit 1039, page 1
`
`Cloudflare - Exhibit 1039, page 1
`
`

`

`Waled *S11
`
`IN)
`cn
`16.4
`O
`O
`16.4
`
`L JO 1 lamIS
`
`iff 000tTe9 Sf1
`
`32
`
`20
`SERVER
`
`40
`
`NETWORK
`
`45
`
`25
`
`CLIENT
`
`NETWORK IF
`
`37
`
`NETWORK IF
`
`37'
`
`000000000
`0 35a-.
`0
`0
`0
`0
`0
`0
`0
`0
`0
`0
`0
`0 0 0 0 0 0 0 0 0
`
`CPU
`
`A
`
`35b
`
`37
`
`0 0 0 0 0 0 0 0 0
`0
`
`0
`0
`0
`0
`O
`0
`O
` 0
`O
`0
`O
`000000000
`
`CPU
`
`
`
`35a'-.
`
`35b'
`
`37'
`
`FIG. -1A
`(PRIOR ART)
`
`Cloudflare - Exhibit 1039, page 2
`
`Cloudflare - Exhibit 1039, page 2
`
`

`

`U.S. Patent
`
`Jun. 25, 2002
`
`Sheet 2 of 7
`
`US 6,412,000 B1
`
`.111111111111111M
`
`.y-20
`
`-4
`
`SERVER
`
`5 5
`.____
`
`4 6
`.___
`
`42
`.___.
`
`44
`
`CGI
`
`WEB
`SERVER
`
`OPERATING
`SYSTEM
`
`TCP/IP
`
`/DATA OBJECT
`1
`
`50
`
`,..--•
`
`I
`/ DATA OBJECT
`N
`
`51
`
`QUERY
`FROM USER 0 t „
`
`HTML OUTPUT
`TO USER
`
`45
`
`INTERNET
`
`0
`
`TCP/IP
`
`OPERATING
`SYSTEM
`
`44'
`
`42'
`
`WEB
`BROWSER
`
`46'
`.__
`
`FIG. 18
`(PRIOR ART)
`
`011111111111111111
`
`y -25
`
`CLIENT
`
`Cloudflare - Exhibit 1039, page 3
`
`Cloudflare - Exhibit 1039, page 3
`
`

`

`Waled *S11
`
`L JO £ lamIS
`
`iff 000tTe9 Sf1
`
`---
`
`_/- 71
`SUN
`SPARC
`
`}7- 70
`
`° 111111111111111111
`
`y -62
`
`IBM
`COMPATIBILE
`
`60
`
`75
`
`ROUTER
`
`----1---r
`
`-
`
`ETHERNET
`
`- 63
`
`_
`
`. 72
`
`_
`
`VAX 6000
`
`IBM AS/400
`
`FIG. 1C
`(PRIOR ART)
`
`61
`
`IBM RS/6000
`
`Cloudflare - Exhibit 1039, page 4
`
`Cloudflare - Exhibit 1039, page 4
`
`

`

`U.S. Patent
`
`Jun. 25, 2002
`
`Sheet 4 of 7
`
`US 6,412,000 B1
`
`88
`86
`84
`
`82
`80
`
`FTP Telnet HTTP SNMP RPC
`UDP
`TCP
`
`IP and ICMP
`Ethernet, Token Ring, IEEE 802.3. X25, Serial (SLIP)
`ATM, Frame Relay, CSMA/CD, Packet Switching
`
`LEGEND
`88 Session/Application Layer
`86 Transport Layer
`84 Network Layer
`82 Data Link Layer
`80 Physical Layer
`
`FIG. ID
`(PRIOR ART)
`
`201
`
`..1
`
`202
`
`DEPT A
`INSIDE HOST
`SUBNET A
`
`FTP
`OUTSIDE
`PORT 2.0
`
`y -206
`
`WEB
`
`FTP
`
`WEB
`
`208
`
`210
`
`212
`
`DEPT B
`INSIDE HOST
`SUBNET B
`
`DEFAULT
`
`204
`
`205
`
`FIG. 2A
`
`Cloudflare - Exhibit 1039, page 5
`
`Cloudflare - Exhibit 1039, page 5
`
`

`

`U.S. Patent
`
`Jun. 25, 2002
`
`Sheet 5 of 7
`
`US 6,412,000 B1
`
`203
`
`DEPT A
`
`f226
`
`DEPT B
`
`DEPT A
`
`228
`
`230
`
`DEPT B
`
`_z- 232
`
`220
`
`224
`
`225
`
`WEB
`
`TCP
`
`DEFAULT
`
`FIG. 2B
`
`y -304
`
`CLASSIFIER
`
`0
`
`-4
`
`0
`
`KNOWLEDGE
`BASE
`
`306
`
`302
`
`308
`
`TRAFFIC a
`
`TRAFFIC b
`
`TRAFFIC c
`
`CLASS A
`
`CLASS B
`
`CLASS C
`
`FIG. 3
`
`Cloudflare - Exhibit 1039, page 6
`
`Cloudflare - Exhibit 1039, page 6
`
`

`

`U.S. Patent
`
`Jun. 25, 2002
`
`Sheet 6 of 7
`
`US 6,412,000 B1
`
`401
`
`PARSE FLOW
`SPECIFICATION
`FROM A PACKET
`OF THE FLOW
`
`__
`
`-- 402
`
`COMPARE FLOW
`SPECIFICATION
`WITH EXISTING
`CLASSIFICATION TREE
`
`, j- -- 404
`
`406
`
`NO
`
`TRAFFIC
`MATCHES A
`CLASS?
`
`YES
`
`CRETURN
`
`y-- 408
`
`f410
`
`412
`
`ENTER INTO A
`SAVED LIST
`CHARACTERISTICS
`OF THE TRAFFIC
`
`SUPPRESS
`DUPLICATES
`
`1
`1
`
`DETERM NE BYTE
`COUNT FOR TRAFFIC
`AND INCLUDE WITH
`TRAFFIC SPECIFICATION
`IN SAVED LIST
`
`i
`CRETURN
`
`FIG. 4A
`
`Cloudflare - Exhibit 1039, page 7
`
`Cloudflare - Exhibit 1039, page 7
`
`

`

`U.S. Patent
`
`Jun. 25, 2002
`
`Sheet 7 of 7
`
`US 6,412,000 B1
`
`403
`
`RETRIEVE CLASSIFIED
`TRAFFIC FROM
`SAVED LIST
`
`420
`
`YES
`
`SAVED
`TRAFFIC WELL
`KNOWN?
`
`422
`
`NO
`
`SAVED
`TRAFFIC A SERVER
`AT UNREGISTERED
`IP PORT?
`
`423
`
`NO
`
`YES
`
`426
`
`NO
`
`SAVED
`TRAFFIC BELONGS
`TO A SERVICE
`GGREGAT
`
`425
`
`CREATE NEW
`TRAFFIC CLASS
`FOR SAVED
`TRAFFIC
`
`YES
`
`CREATE TRAFFIC CLASS
`MATCHING ALL
`COMPONENTS OF
`SERVICE AGGREGATE
`
`y-428
`
`NO
`
`TOO
`MANY CLASSES
`
`432
`
`YES
`
`(NO MORE AUTO)
`CLASSIFICATION
`
`FIG. 4B
`
`Cloudflare - Exhibit 1039, page 8
`
`Cloudflare - Exhibit 1039, page 8
`
`

`

`1
`METHOD FOR AUTOMATICALLY
`CLASSIFYING TRAFFIC IN A PACKET
`COMMUNICATIONS NETWORK
`
`CROSS-REFERENCES TO RELATED
`APPLICATIONS
`
`This application claims priority from a commonly owned
`U.S. Provisional Patent Application, Ser. No. 60/066,864,
`filed on Nov. 25 1997, in the name of Guy Riddle and Robert
`L. Packer, entitled "Method for Automatically Classifying
`Traffic in a Policy Based Bandwidth Allocation System."
`The following related commonly -owned
`contemporaneously-filed co-pending U.S. Patent Applica-
`tion is hereby incorporated by reference in its entirety for all
`purposes: U.S. patent application Ser. No. 09/198,051, still
`pending, in the name of Guy Riddle, entitled "Method for
`Automatically Determining a Traffic Policy in a Packet
`Communications Network,".
`
`COPYRIGHT NOTICE
`
`A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by anyone of the patent document or the patent
`disclosure as it appears in the Patent and Trademark Office
`patent file or records, but otherwise reserves all copyright
`rights whatsoever.
`Further, this application makes reference to the following
`commonly owned U.S. Patent Application, which are incor-
`porated by reference herein in their entirety for all purposes:
`U.S. Pat. No. 5,802,106, in the name of Robert L. Packer,
`entitled "Method for Rapid Data Rate Detection in a
`Packet Communication Environment Without Data
`Rate Supervision," relates to a technique for automati-
`cally determining the data rate of a TCP connection;
`U.S. patent application Ser. No. 08/977,376, now U.S.
`Pat. No. 6,046,980, in the name of Robert L. Packer,
`entitled "Method for Managing Flow Bandwidth Uti-
`lization at Network, Transport and Application Layers
`in Store and Forward Network," relates to a technique
`for automatically allocating bandwidth based upon data
`rates of TCP connections according to a hierarchical
`classification paradigm; and.
`U.S. patent application Ser. No. 08/742,994, now U.S.
`Pat. No. 6,038,216 in the name of Robert L. Packer,
`entitled "Method for Explicit Data Rate Control in a
`Packet Communication Environment Without a Data
`Rate Supervision," relates to a technique for automati-
`cally scheduling TCP packets for transmission.
`
`BACKGROUND OF THE INVENTION
`
`This invention relates to digital packet
`telecommunications, and particularly to management of
`network bandwidth based on information ascertainable from
`multiple layers of OSI network model. It is particularly
`useful in conjunction with bandwidth allocation mecha-
`nisms employing traffic classification in a digitally-switched
`packet telecommunications environment, as well as in
`monitoriing, security and routing.
`The ubiquitous TCP/IP protocol suite, which implements
`the world-wide data communication network environment
`called the Internet and is also used in private networks
`(Intranets), intentionally omits explicit supervisory function
`over the rate of data transport over the various media which
`comprise the network. While there are certain perceived
`
`US 6,412,000 B1
`
`10
`
`2
`advantages, this characteristic has the consequence of jux-
`taposing very high-speed packet flows and very low-speed
`packet flows in potential conflict for network resources,
`which results in inefficiencies. Certain pathological loading
`5 conditions can result in instability, overloading and data
`transfer stoppage. Therefore, it is desirable to provide some
`mechanism to optimize efficiency of data transfer while
`minimizing the risk of data loss. Early indication of the rate
`of data flow which can or must be supported is imperative.
`In fact, data flow rate capacity information is a key factor for
`use in resource allocation decisions. For example, if a
`particular path is inadequate to accommodate a high rate of
`data flow, an alternative route can be sought out.
`Internet/Intranet technology is based largely on the TCP/
`15 IP protocol suite, where IP, or Internet Protocol, is the
`network layer protocol and TCP, or Transmission Control
`Protocol, is the transport layer protocol. At the network
`level, IP provides a "datagram"delivery service. By contrast,
`TCP builds a transport level service over the datagram
`20 service to provide guaranteed, sequential delivery of a byte
`stream between two IP hosts.
`TCP flow control mechanisms operate exclusively at the
`end stations to limit the rate at which TCP endpoints emit
`data. However, TCP lacks explicit data rate control. The
`25 basic flow control mechanism is a sliding window, super-
`imposed on a range of bytes beyond the last explicitly-
`acknowledged byte. Its sliding operation limits the amount
`of unacknowledged transmissible data that a TCP endpoint
`can emit.
`30 Another flow control mechanism is a congestion window,
`which is a refinement of the sliding window scheme, which
`employs conservative expansion to fully utilize all of the
`allowable window. A component of this mechanism is
`sometimes referred to as "slow start".
`The sliding window flow control mechanism works in
`conjunction with the Retransmit Timeout Mechanism
`(RTO), which is a timeout to prompt a retransmission of
`unacknowledged data. The timeout length is based on a
`running average of the Round Trip Time (RTT) for acknowl-
`40 edgment receipt, i.e. if an acknowledgment is not received
`within (typically) the smoothed RTT+4*mean deviation,
`then packet loss is inferred and the data pending acknowl-
`edgment is retransmitted.
`Data rate flow control mechanisms which are operative
`45 end-to-end without explicit data rate control draw a strong
`inference of congestion from packet loss (inferred, typically,
`by RTO). TCP end systems, for example, will "back-off",
`i.e., inhibit transmission in increasing multiples of the base
`RTT average as a reaction to consecutive packet loss.
`50 Bandwidth Management in TCP/IP Networks
`Conventional bandwidth management in TCP/IP net-
`works is accomplished by a combination of TCP end sys-
`tems and routers which queue packets and discard packets
`when certain congestion thresholds are exceeded. The
`55 discarded, and therefore unacknowledged, packet serves as
`a feedback mechanism to the TCP transmitter. (TCP end
`systems are clients or servers running the TCP transport
`protocol, typically as part of their operating system.) The
`term "bandwidth management" is often used to refer to link
`60 level bandwidth management, e.g. multiple line support for
`Point to Point Protocol (PPP). Link level bandwidth man-
`agement is essentially the process of keeping track of all
`traffic and deciding whether an additional dial line or ISDN
`channel should be opened or an extraneous one closed. The
`65 field of this invention is concerned with network level
`bandwidth management, i.e. policies to assign available
`bandwidth from a single logical link to network flows.
`
`35
`
`Cloudflare - Exhibit 1039, page 9
`
`Cloudflare - Exhibit 1039, page 9
`
`

`

`US 6,412,000 B1
`
`4
`analyzing real traffic in a customer's network and automati-
`cally producing a list of the "found traffic."
`
`SUMMARY OF THE INVENTION
`
`According to the invention, in a packet communication
`environment, a method is provided for automatically clas-
`sifying packet flows for use in allocating bandwidth
`resources and the like by a rule of assignment of a service
`10 level. The method comprises applying individual instances
`of traffic classification paradigms to packet network flows
`based on selectable information obtained from a plurality of
`layers of a multi-layered communication protocol in order to
`define a characteristic class, then mapping the flow to the
`is defined traffic class. It is useful to note that the automatic
`classification is sufficiently robust to classify a complete
`enumeration of the possible traffic.
`In the present invention network managers need not know
`the technical aspects of each kind of traffic in order to
`20 configure traffic classes and service aggregates bundle traffic
`to provide a convenience to the user, by clarifying process-
`ing and enables the user to obtain group counts of all parts
`comprising a service.
`The invention will be better understood upon reference to
`25 the following detailed description in connection with the
`accompanying drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1A depicts a representative client server relationship
`in accordance with a particular embodiment of the inven-
`tion;
`FIG. 1B depicts a functional perspective of the represen-
`35 tative client server relationship in accordance with a par-
`ticular embodiment of the invention;
`
`FIG. 1C depicts a representative internetworking envi-
`ronment in accordance with a particular embodiment of the
`invention;
`FIG. 1D depicts a relationship diagram of the layers of the
`TCP/IP protocol suite;
`FIGS. 2A-2B depict representative divisions of band-
`width;
`
`45
`
`FIG. 3 depicts a component diagram of processes and data
`structures in accordance with a particular embodiment of the
`invention; and
`FIGS. 4A-4B depict flowcharts of process steps in auto-
`s° matically classifying traffic in accordance with a particular
`embodiment of the invention.
`
`3
`In a copending U.S. patent application Ser. No. 08/742,
`994, now U.S. Pat. No. 6,038,216, in the name of Robert L.
`Packer, entitled "Method for Explicit Data Rate Control in
`a Packet Communication Environment Without Data Rate
`Supervision," a technique for automatically scheduling TCP 5
`packets for transmission is disclosed. Furthermore, in U.S.
`Pat. No. 5,802,106, in the name of Robert L. Packer, entitled
`"Method for Rapid Data Rate Detection in a Packet Com-
`munication Environment Without Data Rate Supervision," a
`technique for automatically determining the data rate of a
`TCP connection is disclosed. Finally, in a copending U.S.
`Pat. application Ser. No. 08/977,376, now abandoned, in the
`name of Robert L. Packer, entitled "Method for Managing
`Flow Bandwidth Utilization at Network, Transport and
`Application Layers in Store and Forward Network," a tech-
`nique for automatically allocating bandwidth based upon
`data rates of TCP connections according to a hierarchical
`classification paradigm is disclosed.
`Automated tools assist the network manager in configur-
`ing and managing the network equipped with the rate control
`techniques described in these copending applications. In a
`related copending application, a tool is described which
`enables a network manager to automatically produce poli-
`cies for traffic being automatically detected in a network. It
`is described in a copending U.S. patent application Ser. No.
`09/198,051, still pending, in the name of Guy Riddle,
`entitled "Method for Automatically Determining a Traffic
`Policy in a Packet Communications Network", based on
`U.S. Provisional Patent Application Ser. No. 60/066,864.
`The subject of the present invention is also a tool designed 30
`to assist the network manager.
`While these efforts teach methods for solving problems
`associated with scheduling transmissions, automatically
`determining data flow rate on a TCP connection, allocating
`bandwidth based upon a classification of network traffic and
`automatically determining a policy, respectively, there is no
`teaching in the prior art of methods for automatically
`classifying packet traffic based upon information gathered
`from a multiple layers in a multi-layer protocol network.
`Bandwidth has become the expensive commodity of the 40
`'90s, as traffic expands faster than resources, the need to
`"prioritize" a scarce resource, becomes ever more critical.
`One way to solve this is by applying "policies" to control
`traffic classified as to type of service required in order to
`more efficiently match resources with traffic.
`Traffic may be classified by type, e.g. E-mail, web surfing,
`file transfer, at various levels. For example, to classify by
`network paradigm, examining messages for an IEEE source/
`destination service access point (SAP) or a sub-layer access
`protocol (SNAP) yields a very broad indicator, i.e., SNA or
`IP. More specific types exist, such as whether an IP protocol
`field in an IP header indicates TCP or UDP. Well known
`connection ports provide indications at the application layer,
`i.e., SMTP or HTTP.
`Classification is not new. Firewall products like "Check- 55
`Point FireWall-1," a product of CheckPoint Software
`Technologies, Inc., a company with headquarters in Red-
`wood City, Calif., have rules for matching traffic. Bandwidth
`managers such as "Aponet," a product of Aponet, Inc., a
`company with headquarters in San Jose, Calif., classify by
`destination. The PacketShaper, a product of Packeteer, Inc.,
`a company with headquarters in Cupertino, Calif., allows a
`user to manually enter rules to match various traffic types for
`statistical tracking, i.e., counting by transaction, byte count,
`rates, etc. However, manual rule entry requires a level of
`expertise that limits the appeal for such a system to network
`savvy customers. What is really needed is a method for
`
`DESCRIPTION OF SPECIFIC EMBODIMENTS
`
`1.0 Introduction
`The present invention provides techniques to automati-
`cally classify a plurality of heterogeneous packets in a
`packet telecommunications system for management of net-
`work bandwidth in systems such as a private area network,
`60 a wide area network or an internetwork. Systems according
`to the present invention enable network managers to: auto-
`matically define traffic classes, for which policies may then
`be created for specifying service levels for the traffic classes
`and isolating bandwidth resources associated with certain
`65 traffic classes. Inbound as well as outbound traffic may be
`managed. Table 1 provides a definitional list of terminology
`used herein.
`
`Cloudflare - Exhibit 1039, page 10
`
`Cloudflare - Exhibit 1039, page 10
`
`

`

`5
`
`TABLE 1
`
`LIST OF DEFINITIONAL TERMS
`
`ADMISSIONS
`CONTROL
`
`EXCEPTION
`
`EXCESS
`INFORMATION
`RATE(EIR)
`FLOW
`
`INSIDE
`
`ISOLATION
`
`OUTSIDE
`
`PARTITION
`POLICY
`POLICY
`INHERITANCE
`
`TRAFFIC
`CLASS
`
`URI
`
`A policy invoked whenever a system according to the
`invention detects that a guaranteed information rate
`cannot be maintained. An admissions control policy is
`analogous to a busy signal in the telephone world.
`CLASS SEARCH A search method based upon traversal of a N-ary tree
`ORDER
`data structure containing classes.
`COMMITTED
`A rate of data flow allocated to reserved service traffic 10
`INFORMATION
`for rate based bandwidth allocation for a committed
`RATE(CIR)
`bandwidth. Also called a guaranteed information rate
`(GIR).
`A class of traffic provided by the user which
`supersedes an automatically determined classification
`order.
`A rate of data flow allocated to reserved service traffic
`for rate based bandwidth allocation for uncommitted
`bandwidth resources.
`A flow is a single instance of a traffic class. For
`example, all packets in a TCP connection belong to the
`same flow. As do all packets in a UDP session.
`GUARANTEED A rate of data flow allocated to reserved service traffic
`INFORMATION
`for rate based bandwidth allocation for a committed
`RATE (GIR)
`bandwidth. Also called a committed information rate
`(CIR).
`On the system side of an access link. Outside clients
`and servers are on the other side of the access link.
`Isolation is the degree that bandwidth resources are
`allocable to traffic classes.
`On the opposite side of an access link as viewed from
`the perspective of the system on which the software
`resides.
`Partition is an arbitrary unit of network resources.
`A rule for the assignment of a service level to a flow.
`A method for assigning policies to flows for which no
`policy exists in a hierarchical arrangement of policies.
`For example, if a flow is determined to be comprised
`of FTP packets for Host A, and no corresponding
`policy exists, a policy associated with a parent node,
`such as an FTP policy, may be located and used.
`POLICY BASED An adjustment of a requested data rate for a particular
`SCALING
`flow based upon the policy associated with the flow
`and information about the flow's potential rate.
`SCALED RATE Assignment of a data rate based upon detected speed.
`SERVICE
`A service paradigm having a combination of
`LEVEL
`characteristics defined by a network manager to handle
`a particular class of traffic. Service levels may be
`designated as either reserved or unreserved.
`All traffic between a client and a server endpoints. A
`single instance of a traffic class is called a flow.
`Traffic classes have properties or class attributes such
`as, directionality, which is the property of traffic to be
`flowing inbound or outbound;
`UNRESERVED Unreserved service is a service level defined in terms
`SERVICE
`of priority in which no reservation of bandwidth is
`made.
`A Universal Resource Identifier is the name of the
`location field in a web reference address. It is also
`called a URL or Universal Resource Locator
`
`US 6,412,000 B1
`
`5
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`6
`The hardware configurations are in general standard and
`will be described only briefly. In accordance with known
`practice, server 20 includes one or more processors 30 which
`communicate with a number of peripheral devices via a bus
`subsystem 32. These peripheral devices typically include a
`storage subsystem 35, comprised of a memory subsystem
`35a and a file storage subsystem 35b holding computer
`programs (e.g., code or instructions) and data, a set of user
`interface input and output devices 37, and an interface to
`outside networks, which may employ Ethernet, Token Ring,
`ATM, IEEE 802.3, ITU X.25, Serial Link Internet Protocol
`(SLIP) or the public switched telephone network. This
`interface is shown schematically as a "Network Interface"
`block 40. It is coupled to corresponding interface devices in
`client computers via a network connection 45.
`Client 25 has the same general configuration, although
`typically with less storage and processing capability. Thus,
`while the client computer could be a terminal or a low-end
`personal computer, the server computer is generally a high-
`end workstation or mainframe, such as a SUN SPARC
`server. Corresponding elements and subsystems in the client
`computer are shown with corresponding, but primed, refer-
`ence numerals.
`Bus subsystem 32 is shown schematically as a single bus,
`but a typical system has a number of buses such as a local
`bus and one or more expansion buses (e.g., ADB, SCSI, ISA,
`EISA, MCA, NuBus, or PCI), as well as serial and parallel
`ports. Network connections are usually established through
`a device such as a network adapter on one of these expansion
`buses or a modem on a serial port. The client computer may
`be a desktop system or a portable system.
`The user interacts with the system using interface devices
`37' (or devices 37 in a standalone system). For example,
`client queries are entered via a keyboard, communicated to
`client processor 30', and thence to modem or network
`interface 40' over bus subsystem 32'. The query is then
`communicated to server 20 via network connection 45.
`Similarly, results of the query are communicated from the
`server to the client via network connection 45 for output on
`one of devices 37' (say a display or a printer), or may be
`stored on storage subsystem 35'.
`FIG. 1B is a functional diagram of a computer system
`such as that of FIG. 1A. FIG. 1B depicts a server 20, and a
`representative client 25 of a plurality of clients which may
`interact with the server 20 via the Internet 45 or any other
`communications method. Blocks to the right of the server
`are indicative of the processing steps and functions which
`occur in the server's program and data storage indicated by
`blocks 35a and 35b in FIG. 1A. A TCP/IP "stack" 44 works
`in conjunction with Operating System 42 to communicate
`with processes over a network or serial connection attaching
`Server 20 to Internet 45. Web server software 46 executes
`concurrently and cooperatively with other processes in
`server 20 to make data objects 50 and 51 available to
`requesting clients. A Common Gateway Interface (CGI)
`script 55 enables information from user clients to be acted
`upon by web server 46, or other processes within server 20.
`Responses to client queries may be returned to the clients in
`the form of a Hypertext Markup Language (HTML) docu-
`ment outputs which are then communicated via Internet 45
`back to the user.
`Client 25 in FIG. 1B possesses software implementing
`functional processes operatively disposed in its program and
`data storage as indicated by block 35a' in FIG. 1A. TCP/IP
`stack 44', works in conjunction with Operating System 42' to
`communicate with processes over a network or serial con-
`
`Cloudflare - Exhibit 1039, page 11
`
`1.1 Hardware Overview
`The method for automatically classifying heterogeneous
`packets in a packet telecommunications environment of the
`present invention is implemented in the C programming
`language and is operational on a computer system such as
`shown in FIG. 1A. This invention may be implemented in a
`client-server environment, but a client-server environment is
`not essential. This figure shows a conventional client-server
`computer system which includes a server 20 and numerous
`clients, one of which is shown as client 25. The use of the
`term "server" is used in the context of the invention, wherein
`the server receives queries from (typically remote) clients,
`does substantially all the processing necessary to formulate
`responses to the queries, and provides these responses to the
`clients. However, server 20 may itself act in the capacity of
`a client when it accesses remote databases located at another
`node acting as a database server.
`
`55
`
`60
`
`65
`
`Cloudflare - Exhibit 1039, page 11
`
`

`

`US 6,412,000 B1
`
`25
`
`7
`nection attaching Client 25 to Internet 45. Software imple-
`menting the function of a web browser 46'executes concur-
`rently and cooperatively with other processes in client 25 to
`make requests of server 20 for data objects 50 and 51. The
`user of the client may interact via the web browser 46' to
`make such queries of the server 20 via Internet 45 and to
`view responses from the server 20 via Internet 45 on the web
`browser 46'.
`Network Overview
`FIG. 1C is illustrative of the internetworking of a plurality 10
`of clients such as client 25 of FIGS. 1A and 1B and a
`plurality of servers such as server 20 of FIGS. 1A and 1B as
`described herein above. In FIG. 1C, network 60 is an
`example of a Token Ring or frame oriented network. Net-
`work 60 links host 61, such as an IBM RS6000 RISC
`workstation, which may be running the AIX operating
`system, to host 62, which is a personal computer, which may
`be running Windows 95, IBM OS/2 or a DOS operating
`system, and host 63, which may be an IBM AS/400
`computer, which may be running the OS/400 operating 20
`system. Network 60 is internetworked to network 70 via a
`system gateway which is depicted here as router 75, but
`which may also be a gateway having a firewall or a network
`bridge. Network 70 is an example of an Ethernet network
`that interconnects host 71, which is a SPARC workstation,
`which may be running SUNOS operating system with host
`72, which may be a Digital Equipment VAX6000 computer
`which may be running the VMS operating system.
`Router 75 is a network access point (NAP) of network 70
`and network 60. Router 75 employs a Token Ring adapter
`and Ethernet adapter. This enables router 75 to interface with
`the two heterogeneous networks. Router 75 is also aware of
`the Inter-network Protocols, such as ICMP and RIP, which
`are described herein below.
`FIG. 1D is illustrative of the constituents of the Trans-
`mission Control Protocol/Internet Protocol (TCP/IP) proto-
`col suite. The base layer of the TCP/IP protocol suite is the
`physical layer 80, which defines the mechanical, electrical,
`functional and procedural standards for the physical trans-
`mission of data over communications media, such as, for
`example, the network connection 45 of FIG. 1A. The
`physical layer may comprise electrical, mechanical or func-
`tional standards such as whether a network is packet switch-
`ing or frame-switching; or whether a network is based on a
`Carrier Sense Multiple Access/Collision Detection (CSMA/
`CD) or a frame relay paradigm.
`Overlying the physical layer is the data link layer 82. The
`data link layer provides the function and protocols to trans-
`fer data between network resources and to detect errors that
`may occur at the physical layer. Operating modes at the
`datalink layer comprise such standardized network topolo-
`gies as IEEE 802.3 Ethernet, IEEE 802.5 Token Ring, ITU
`X.25, or serial (SLIP) protocols.
`Network layer protocols 84 overlay the datalink layer and
`provide the means for establishing connections between
`networks. The standards of network layer protocols provide
`operational control procedures for internetworking commu-
`nications and routing information through multiple heterog-
`enous networks. Examples of network layer protocols are
`the Internet Protocol (IP) and the Internet Control Message
`Protocol (ICMP). The Address Resolution Protocol (ARP) is
`used to correlate an Internet address and a Media Access
`Address (MAC) for a particular host. The Routing Informa-
`tion Protocol (RIP) is a dynamic routing protocol for passing
`routing information between hosts on networks. The Internet
`Control Message Protocol (ICMP) is an internal protocol for
`passing control messages between hosts on various net-
`
`8
`works. ICMP messages provide feedback about events in the
`network environment or can help determine if a path exists
`to a particular host in the network environment. The latter is
`called a "Ping". The Internet Protocol (

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