throbber
United States Patent
`[19]
`[11] Patent Number:
`6,046,980
`
`Packer
`[45] Date of Patent:
`Apr. 4, 2000
`
`USOO6046980A
`
`[54]
`
`[75]
`
`SYSTEM FOR MANAGING FLOW
`BANDWIDTH UTILIZATION AT NETWORK,
`TRANSPORT AND APPLICATION LAYERS
`IN STORE AND FORWARD NETWORK
`.4
`.
`,
`V
`Inventor‘ RObert L' PaCker’ hos oatos’ Lam
`
`..................... 395/600
`6/1996 Meske, Jr. et a1.
`5,530,852
`5,583,857 12/1996 Soumiya .............. 370/233
`
`3:33:22: 3;133; ganglia ----------- 23%;;
`,
`,
`aug er ..................................
`5,732,219
`3/1998 Blumer et a1.
`.
`5,748,629
`5/1998 Caldara ................................... 370/468
`5,764,645
`6/1998 Bcrnct
`..................................... 370/466
`
`[73] Assrgnee: Packeteer, Inc., Cupertino, Calif.
`
`Primary Examiner—Ajit Patel
`Assistant Examiner—Ricardo M. Pizarro
`
`[21] APPL N05 08/977,642
`[22]
`Filed'
`NOV. 24, 1997
`Related US. Application Data
`Provisional application No. 60/032,485, Dec. 9, 1996.
`[60]
`Int Cl 7
`G01R 31/08
`[511
`.....................................................
`.
`.
`.
`[52] U..S. Cl.
`............................................. 370/230, 370/229
`[58] Fleld of Search ..................................... 370/229, 230,
`370/231’ 232’ 235’ 465’ 466’ 468
`.
`References CltEd
`US. PATENT DOCUMENTS
`.
`?/1989 BMW?” ‘
`313;: gflimllat ’
`8/1995 Gagliardi et a1.
`4/1996 Sekihata et a1.
`
`[56]
`
`4’870’641
`2’32???
`5:442:630
`5,506,834
`
`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 classifying packet network flows for use in deter—
`mining a policy, or rule of assignment of a service level, and
`enforcing that policy by direct rate control. The method
`comprises applying individual instances of traffic objects,
`i.e., packet network flows to a classification model based on
`selectable information obtained from a plurality of layers of
`a multi-layered communication protocol, then mapping the
`flow to the defined traffic classes, which are arbitrarily
`assignable by an offline manager which creates the classi-
`fication. It is useful to note that the classification need not be
`a complete enumeration of the possible traffic.
`
`17 Claims, 20 Drawing Sheets
`
`370/54
`......................... 370/85
`
`,
`
`4|4
`
`‘06
`
`415
`
`4”
`
`PARTITION
`
`'5
`
`4|2
`
`BWPOOLS
`
`E
`
`4|?)
`
`BWPOOLS
`
`'-
`
`m
`
`Film
`i cm
`
`ouraouun
`
`F“
`
`4H
`
`INBOUND
`
`
`
`402
`
`TGB
`
`404
`
`404
`404
`
`408
`
`406
`
`I HOSTIHFO
`
`EX 1031 Page 1
`EX 1031 Page 1
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 1 0f 20
`
`6,046,980
`
`:s
`"5
`
`'A
`‘I F‘
`‘5
`Q5 2;
`t2
`‘4
`
`"a“7
`N5
`
`5U
`
`
`
`OOOOOOOO
`
`
`00000000'
`
`00000000
`
`EX 1031 Page 2
`EX 1031 Page 2
`
`25
`
`NETWORKIF
`
`\
`\
`v
`
`45
`
`20
`
`32
`
`40
`
`40'
`
`NETWORKIF
`
`.n
`:3
`
`
`
`0OOOOOOOO
`
`
`
`
`
`0000000
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 2 0f 20
`
`6,046,980
`
`55
`
`46
`
`'DATA OBJECT
`
`'
`
`WEB SERVER
`
`20
`OPERATING
`03 I
`
`SYSTEM
`
`SERVER
`
`TCP/IP
`
`42
`44 ' DATA OBJECT
`ll
`
`QUERY FROM USER N
`
`HTML OUTPUT T0 USER
`
`50
`
`5|
`
`.45
`
`13
`
`TE W25
`‘v’
`"‘
`
`42
`
`CLIENT
`
`6f4
`
`WEB
`BROWSER
`
`
`
`FIG:
`
`IB.
`
`EX 1031 Page 3
`EX 1031 Page 3
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 3 0f 20
`
`6,046,980
`
`7|
`
`70
`
`SUNSPARC
`
`
`
`VAX6000
`
`FIGSICI
`
`(PRIORART)
`
`
`
`IBMCOMPATIBLE
`
`IBMR5/6000
`
`IBMAS/400
`
`EX 1031 Page 4
`EX 1031 Page 4
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 4 0f 20
`
`6,046,980
`
`
`
`88
`86“
`mm]
`34
`IP AND ICMP
`
`ETHERNET, TOKEN RING, IEEE 802.5, x.25. SERIAL (SLIP)
`
`
`ATM, FRAME RELAY, csuA/co, PACKET svmcumc
`
`
`
`
`
`82
`
`so
`
`LEGEND
`
`88 SESSION/APPLICATION LAYER
`
`86 TRANSPORT LAYER
`84 NETWORK LAYER
`82 DATA LINK LAYER
`80 PHYSICAL LAYER
`
`FIG.
`
`ID.
`
`(PRIOR ART)
`
`EX 1031 Page 5
`EX 1031 Page 5
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 5 0f 20
`
`6,046,980
`
`LOCAL TOP
`END POINT
`(SERVER)
`
`REMOTE TOP
`ENDPOINT
`
`
`
`
`
`
`
`
`NEGLIBLE
`LATENCY
`
`5"; 3f: "' 5f"
`
`
`LATENCY
`(INVARIANT)
`
`LOCATION
`
`FIG.
`
`IE.
`
`(PRIOR ART)
`
`EX 1031 Page 6
`EX 1031 Page 6
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 6 0f 20
`
`6,046,980
`
`DEPT A
`lNSlDE HOST
`SUBNET A
`
`OUTSIDE
`PORT 20
`
`DEPT B
`INSIDE HOST
`SUBNET B
`
`
` DEFAULT
`
`212
`
`220
`
`EX 1031 Page 7
`EX 1031 Page 7
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 7 0f 20
`
`6,046,980
`
`240
`
`203
`
`/
`
`ALLOCATE A TCLASS
`FOR THE TRAFFIC
`CLASS
`
`242
`
`244
`
`246
`
`
`
`SET UP THE A TRAF-
`FIG SPECIFICATION
`FOR THE NEVI T ,
`(SEE FIG. 20)
`
`INSERT THE NEW
`TGLASS INTO THE
`TREE (SEE FIG. 2E)
`
`REDISTRIBIITE
`BANDNIDTH
`(SEE FIG. 50)
`
`FIG 26‘.
`
`EX 1031 Page 8
`EX 1031 Page 8
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 8 0f 20
`
`6,046,980
`
`TCLASSSETUPTSPEC
`
`205
`
`/
`
`250
`
`N0
`
`
`
`CURRENT TSPEC
`=RO0T
`
`252
`
`IS
`-
`THE NEWTSPEG
`@55 SPECIFIC TH
`CURRENITSPEC
`
`vss
`
`254
`
`00
`
`YES
`
`256
`
`CURRENT TSPEC= NEXT
`TSPEG m TCLASS
`
`253
`
`
`
`INSERT THE NEW TSPEC
`AFTER THE CURRENT
`
`TSPEC
`
`RETURN
`
`FIG: 20.
`
`EX 1031 Page 9
`EX 1031 Page 9
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 9 0f 20
`
`6,046,980
`
`TGLASSINSERTGHILD
`
`/ 207
`
`260
`
`CURRENT SIBLING = FIRST
`
`SIBLING
`
`262
`
`‘ EW
`TCLASS LESS SPE-
`
`@c THAN CURRENT
`50ng cuss
`
`YES
`
`264
`
`LAST
`SIBLING?
`
`N0
`
`YES
`
`266
`
`CURRENT SIBLING=NEXT
`SIBLING
`
`SIBLING
`
`INSERT THE NEW TO '
`AFTER THE CURRENT
`
`268
`
`RETURN
`
`Fl6: 25.
`
`EX 1031 Page 10
`EX 1031 Page 10
`
`

`

`US. Patent
`
`Apr. 4,2000
`
`Sheet 10 M20
`
`6,046,980
`
`502
`
`304
`
`/ 30!
`
`TOP
`AUTOBAUD
`
`CL RSSIFIER
`
`DETECT
`FLOW
`SPEED
`
`FIND
`POLICY
`FOR
`FLOW
`
`306
`
`BUIOTHJ‘CR
`
`ALLOCATE
`BWIDTH
`
`NEW FLOW
`
`END FLOW
`
`DEAwLLOCATE
`
`B IDTH
`
`
`
`293
`300
`
`
`
`PROTOCOL
`FINITE STATE
`MACHINE
`
`TN PACKETS
`
`299
`
`FORWARD FLOW
`PACKET
`
`308
`
`SCHEDULER
`
`FORWARD TCP DATA
`WITHOUT DELAY
`
`OUT PACKETS
`
`FIG 3.
`
`EX 1031 Page 11
`EX 1031 Page 11
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 11 0f 20
`
`6,046,980
`
`OM
`
`416
`
`4'5
`
`PARTITION
`
`PARTITION
`PARTITION
`
`4‘2
`
`BWPOOLS
`
`BWPOOLS
`
`41?
`
`POLICY
`
`413
`
`BWPOOLS
`
`BWPOOLS
`
`4l0
`
`FE
`NI
`
`ONTRONNO
`
`4"
`
`PM
`NO
`
`INRouNO
`
`
`
`402
`
`TCB
`
`404
`
`404
`
`404
`
`I
`
`406
`
`ll HOSTINFO
`
`FIG? 4A.
`
`408
`
`
`
`EX 1031 Page 12
`EX 1031 Page 12
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 12 0f 20
`
`6,046,980
`
`3:2ESE2559:3312:5%.
`
`.was.
`
`“5:59893%.2253:
`
`
`
`Es.“Emma:egg3:_
`
`
`
`Bus
`
`2223NIiowe
`
`2»
`
`
`
`35.8.28.—
`
`at
`
`
`
`20:5:.mvwt
`
`”33...BEo!'3238552
`
`av
`
`23
`
`22:33.:
`
`oz:2.mm53325::m_
`
`PE:52.5
`
`EX 1031 Page 13
`EX 1031 Page 13
`
`
`

`

`US. Patent
`
`Apr. 4,2000
`
`Sheet 13 M20
`
`6,046,980
`
`/ 50I
`
`502
`
`504
`
`506
`.
`
`
`
`DETECT NETWORK
`SPEED FOR THIS FLOW
`
`DETERMINE TRAFFIC
`CLASS FOR THIS FLOW
`AND POLICY THEREFRON
`
`SET cm AND EIR BASED
`UPON POLICY AND
`
`
`
`INCOMINC FLOW SPEED
`
`ADD EIR DENANDED TO
`
`REDISTRIBUTE
`
`EIR
`
`SM
`
`SIS
`
`5I8
`
`ASSOCIATE FLOW
`
`TOTAL EIR DEMANDED
`EXCEEOED?
`
`
`
`WITH PARTITION
`
`ALLOCATE CIR AND EIR
`TO INITIAL FLOW TARGET
`RATE
`
`NO
`
`5|D
`
`PARTITION
`
`
`
`
`YES
`
`5l2
`
`APPLY
`ADMISSIONS
`
`POLICY
`
`FIG 5A.
`
`EX 1031 Page 14
`EX 1031 Page 14
`
`

`

`US. Patent
`
`Apr. 4,2000
`
`Sheet 14 M20
`
`6,046,980
`
`/503
`
`TERMlNATOR
`
`
` FORWARD
`IMMEDIATELY
`
`524
`
`
`
`
`
`
`SCHEDULE OUTPUT 0F
`FLOW PACKETS ON A
`
`MILLISECOND BOUNDRY
`BASED UPON TARGET
`
`RATE
`
`FIG: 5B.
`
`EX 1031 Page 15
`EX 1031 Page 15
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 15 0f 20
`
`6,046,980
`
`START
`
`
`RESTORE GlR
`
`
`
`505
`
`/
`
`550
`
`532
`
`
`
`
`SUBTRACT EIR FOR
`THIS FLOW FROM
`TOTAL EIR OEMANOED
`
`
`
`
`REDISTRIBUTE
`
`EIR
`
`
`REMOVE FLOW
`FROM PARTITION
`
`
`
`
`FIG: 5C.
`
`534
`
`536
`
`EX 1031 Page 16
`EX 1031 Page 16
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 16 0f 20
`
`6,046,980
`
`/507
`
`540
`
`
`
`
`
`
`
`
`CALCULATE DEMAND
`SATISFACTION NETRIC
`FOR THIS BANDWIDTH
`POOL
`
`
`
`
`
`DEMAND
`
`SATISFACTION
`
`CHAN CED?
`
`
`
`
`
`
`
`CALCULATE NEW EIR
`
`TOTAL AND NEW TARGET
`
`RATE FOR THIS GEAR
`
`
`
`FIG: 50
`
`EX 1031 Page 17
`EX 1031 Page 17
`
`

`

`US. Patent
`
`Apr. 4, 2000
`
`Sheet 17 0f 20
`
`6,046,980
`
`550
`
`/ 509
`
`MORE
`
`
`
`
`
`EXISTING RESERVED
`
`FLOVIS?
`
`
`
`
`AGGREGATE INDIVIDUAL
`
`
`
`FLOW DEMANDS INTO AN
`
`
`AGGREGATE RATE
`
`
`DEMAND IARD)
`
`
`
`NO
`
`554
`
`552
`
`EXTRAPOLATE UNRE-
`SERVED DEMAND (EUD)
`FROM INPUT RATE INTO
`PRIORITY BUCKETS
`
`
`
`556
`
`558
`
`560
`
`562
`
`COMBINE ARD AND
`
`EUD T0 ARRIVE AT TOTAL
`INSTANTANEOUS
`
`DEMAND (TD)
`
`
`
`
`
`COMPUTE SATISFACTION
`PERCENTAGE (SP) BASED
`ON TOTAL DEMAND AND
`AVAILABLE BANDVIIDTH
`RESOURCES IN PARTITION
`
`
`
`
`
`
`
`
`
`COMPUTE TARGET RATE
`FOR INDIVIDUAL RESERVED
`RATE BASED FLOWS
`
`
`
`
`
`
`
`
`COMPUTE TARGET RATE
`
`FOR PRIORITY BUCKETS
`
`FOR UNRESERVED FLOWS
`
`
`
`
`FIG? 55.
`
`EX 1031 Page 18
`EX 1031 Page 18
`
`

`

`US. Patent
`
`Apr. 4,2000
`
`Sheet 18 M20
`
`6,046,980
`
`TCLASS CHECK
`
`/5Il
`
`
`
` CHECK IF
`CHILD'S CLASS
`MATCHES FLOW
`
`
`
`570
`
`YES
`
`574
`
`APPLY TCLASSCHECK
`RECURSIVELY T0
`
`MATCHING CHILD
`
`
`ANOTHER
`CHILD?
`
`
`
`RETURN
`
`578
`
`.
`
`
` 9
`LEAF-
`'5 THE“
`
`A POLICY'
`
`
`no
`
`TO THIS FLOW
`
`APPLY THE
`POLICY OF THIS LEAF
`
`580
`
`
`333mm”?
`REN
`APPLY POLICY
`
`OF PARENT
`
`RETURN
`
`RETURN
`
`FIG 5F.
`
`EX 1031 Page 19
`EX 1031 Page 19
`
`

`

`US. Patent
`
`Apr. 4,2000
`
`Sheet 19 M20
`
`6,046,980
`
`/5|3
`
`SCALE TOLOAD
`
`
`
`
`
`SET GIR SCALED RATE
`
`
`BASED UPON CONNECTION
`
`
`SPEED FOR THIS GEAR
`
`
`(SEE FIG. SH)
`
`
`
`582
`
`584
`
`
`
`
`
`
`
`
`
`
`
`SET EIR SCALED RATE
`BASED UPON CONNECTION
`SPEED FOR THIS GEAR
`(SEE FIG SH)
`
`
`
`
`
`
`
`DETERMINE EXTRA EIR
`FROM LIMIT AND
`
`REMAINING EIR
`
`
`ALLOCATE LIMITS TO
`PRIORITY LEVELS IN
`
`
`COMPUTE A LIMIT FROM
`
`EITHER THE REMAINING
`EIR OR A TOTAL LIMIT,
`IF AVAILABLE
`
`586
`
`588
`
`590
`
`DESCENDING ORDER
`
`
`ANOTHER
`GEAR?
`
`TERMINATOR
`
`
`
`F/62 5G
`(STEP 506 or FIG. 5A)
`
`EX 1031 Page 20
`EX 1031 Page 20
`
`

`

`US. Patent
`
`Apr. 4,2000
`
`Sheet 20 M20
`
`6,046,980
`
`SCALERATE
`
`aw
`
`1”
`
`594
`
`593
`
`602
`
`592
`
`
`
`
`DETECTED "
`< BASE LIMIT?
`
`YES
`
`RETURN BASE
`
`no
`
`596
`
`
`
`RATE>LIIMIT<<
`
`
`YES
`
`no
`
`
`
`600
`
`
`“$3002
`
`
`
`N0
`
`604
`
`CONPUTE A PERCENTAGE
`'(DETECTED RATE < <7)
`
`/ TOTAL
`
`606
`
`RETURN BASE+ (((LIMIT
`- BASE) * PERCENTAGE)
`
`>> 7)
`
`RETURN
`
`F/G‘. 5H
`
`(STEPS 582 AND 584 or FIG 5c)
`
`EX 1031 Page 21
`EX 1031 Page 21
`
`

`

`6,046,980
`
`1
`SYSTEM FOR MANAGING FLOW
`BANDWIDTH UTILIZATION AT NETWORK,
`TRANSPORT AND APPLICATION LAYERS
`IN STORE AND FORWARD NETWORK
`
`CROSS-REFERENCE TO RELATED
`APPI .ICATIONS
`
`This application claims the benefit of US. Provisional
`Ser. No. 60/032,485 filed Dec. 9, 1996.
`The following related commonly-owned copending appli-
`cation is being filed concurrently and is hereby incorporated
`by reference in its entirety for all purposes: US. patent
`application Ser. No. 08/977,376, in the name of Robert L.
`Packer, entitled “Method for Managing Flow Bandwidth
`Utilization at Network, Transport and Application Layers,”.
`This application claims priority from the following US.
`Provisional Application, the disclosure of which, including
`all appendices and all attached documents, is incorporated
`by reference in its entirety for all purposes:
`US. Provisional Patent Application Ser. No. 60/032,485,
`Robert L. Packer, entitled, “Method for Managing Flow
`Bandwidth Utilization at Network, Transport and Applica-
`tion Layers in Store and Forward Network”, filed Dec. 9,
`1996.
`
`Further, this application makes reference to the following
`commonly owned US. patent Application, which is incor—
`porated herein in its entirety for all purposes:
`Copending US. patent application Ser. No. 08/762,828,
`in the name of Robert L. Packer, entitled “Method for Rapid
`Data Rate Detection in a Packet Communication Environ-
`ment Without Data Rate Supervision,” relates to a technique
`for automatically determining the data rate of a TCP con—
`nection.
`
`Further, this application makes reference to the following
`US. patent Application:
`Copending US. patent application Ser. No. 08/742,994,
`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 automatically scheduling TCP packets for
`transmission.
`
`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.
`
`PAPER APPENDIX
`
`The following paper appendices are included herewith
`and incorporated by reference in their entirety for all pur-
`poses:
`
`Appendix A: Source code listing of bandwidth allocation
`processing an embodiment of the invention comprising
`ten (10) sheets;
`Appendix B: Source code listing of URL classification
`processing an embodiment of the invention comprising
`twenty-four (24) sheets;
`Appendix C: Source code listing of classification process-
`ing an embodiment of the invention comprising nine
`(9) sheets; and
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`Appendix D: Source code listing of speed scaling pro-
`cessing an embodiment of the invention comprising ten
`(10) sheets.
`BACKGROUND OF THE INVENTION
`
`invention relates to digital packet
`This
`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 data flow rate detection and
`control of a digitally-switched packet telecommunications
`environment normally not subject to data flow rate control.
`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
`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
`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 very useful.
`In fact, data flow rate capacity information is a key factor for
`use in resource allocation decisions.
`
`Internet/Intranet technology is based largely on the TCP/
`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 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. In fact,
`there is heretofore no concept of coordination of data rates
`among multiple flows. The basic TCP flow control mecha-
`nism is a sliding window, superimposed on a range of bytes
`beyond the last explicitly-acknowledged byte. Its sliding
`operation limits the amount of unacknowledged transmis-
`sible data that a TCP endpoint can emit.
`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-
`edgment receipt, i.e. if an acknowledgment is not received
`within (typically) the smoothed RTT+4*mean deviation,
`thcn packet loss is inferred and the data pending acknowl-
`edgment is retransmitted.
`Data rate flow control mechanisms which are operative
`cnd-to-cnd 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.
`
`EX 1031 Page 22
`EX 1031 Page 22
`
`

`

`6,046,980
`
`3
`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
`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 level bandwidth management, e.g. multiple line
`support for Point to Point Protocol (PPP). Link level band-
`width management
`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 field of this invention is concerned with network
`level bandwidth management, i.e. policies to assign avail-
`able bandwidth from a single logical link to network flows.
`Routers support various queuing options. These options
`are generally intended to promote fairness and to provide a
`rough ability to partition and prioritize separate classes of
`traffic. Configuring these queuing options with any precision
`or without side effects is in fact very difficult, and in some
`cases, not possible. Seemingly simple things, such as the
`length of the queue, have a profound effect on traffic
`characteristics. Discarding packets as a feedback mechanism
`to TCP end systems may cause large, uneven delays per-
`ceptible to interactive users.
`In a copending US. patent application Ser. No. 08/742,
`994, 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 packets for transmission is
`disclosed. Furthermore, in a copending US. patent applica-
`tion Ser. No. 08/762,828, in the name of Robert L. Packer,
`entitled “Method for Rapid Data Rate Detection in a Packet
`Communication Environment Without Data Rate
`
`Supervision,” a technique for automatically determining the
`data rate of a TCP connection is disclosed. While these
`
`patent applications teach methods for solving problems
`associated with scheduling transmissions and for automati-
`cally determining a data flow rate on a TCP connection,
`respectively, there is no teaching in the prior art of methods
`for explicitly managing TCP packet
`traffic based upon
`information about the flow’s characteristics at multiple OSI
`protocol layers.
`is heretofore not known to
`Bandwidth management
`employ information contained in the packets corresponding
`to higher OSI protocol layers, even though such information
`may be extremely useful in making bandwidth allocation
`and management decisions.
`SUMMARY OF THE INVENTION
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`According to the invention, in a packet communication
`environment, a method is provided for classifying packet
`network flows for use in determining a policy, or rule of _
`assignment of a service level, and enforcing that policy by
`direct rate control. The method comprises applying iridi-
`vidual instances of trafiic objects, i.e., packet network flows
`to a classification model based on selectable information
`
`obtained from a plurality of layers of a multi-layered com-
`munication protocol, then mapping the flow to the defined
`traffic classes, which are arbitrarily assignable by an offline
`manager which creates the classification. It is useful to note
`that the classification need not be a complete enumeration of
`the possible traflic.
`In one aspect of the invention, bandwidth may be divided
`into arbitrary units, partitions,
`facilitating isolation and
`
`60
`
`65
`
`4
`allocation. Apartition is allocated for a class or set of traffic
`classes, carving the bandwidth of the associated link into
`multiple, independent pieces.
`In another aspect of the invention, available bandwidth
`may be allocated among flows according to a policy, which
`may include any combination of guaranteed information
`rate, excess information rate, the later allocated according to
`a priority.
`In another aspect of the invention, bandwidth resource
`needs of multiple heterogeneous requesting flows are rec-
`onciled with available bandwidth resources in accordance
`
`with policy of each flow based upon the flow’s class. Flows
`requiring reserved service with guaranteed information
`rates, excess information rates or unreserved service are
`reconciled with the available bandwidth resources continu-
`
`ously and automatically.
`In another aspect of the invention, providing an admis-
`sions policy which is invoked whenever a request for a
`bandwidth cannot be met consistently with other users of
`bandwidth.
`
`An advantage of network management techniques accord-
`ing to the present invention is that network managers need
`only define traffic classes which are of interest.
`A further advantage of the present invention is that traffic
`classes may include information such as a URI for web
`traffic.
`
`A yet filrther advantage of the present invention is that
`service levels may be defined in terms of explicit rates and
`may be scaled to a remote client or server’s network access
`rate. Different service levels may be specified for high speed
`and low speed users.
`A yet further advantage of the present invention is that
`service levels may be defined in terms of a guaranteed
`minimum service level.
`
`The mvention will be better understood upon reference to
`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-
`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;
`FIG. 1E depicts a two dimensional representation of
`timing relationships in the exchange of packets between
`hosts using the TCP protocol;
`FIGS. 2A—2B depict representative divisions of band-
`width according to a particular embodiment of the invention;
`FIGS. 2C—2E are flow charts depicting process steps
`according to a particular embodiment of the invention;
`FIG. 3 is a block diagram of a particular embodiment
`according to the invention;
`FIG. 4A is a block diagram of a data structure according
`to a particular embodiment of the invention;
`FIG. 4B is a block diagram of data structure according to
`a particular embodiment of the invention; and
`FIGS. 5A—5H are flow charts depicting process steps
`according to a particular embodiment of the invention.
`
`EX 1031 Page 23
`EX 1031 Page 23
`
`

`

`,—
`3
`DETAILED DESCRIPTION OF SPECIFIC
`EMBODIMENTS
`
`6,046,980
`
`6
`
`TABLE 1-continued
`
`LIST OF DEFINITIONAL TERMS
`
`A preferable embodiment of a flow bandwidth manage-
`ment system according to the invention has been reduced to
`practice and will be made available under the trade name
`“PacketShaperTM.”
`1.0 Introduction
`
`invention provides techniques to manage
`The present
`network bandwidth such as on a network access link
`between a local area network and a wide area network.
`
`Systems according to the present invention enable network
`managers to: define traffic classes; create policies which
`define service levels for traffic classes; and isolate band-
`width resources associated with certain traffic classes.
`
`Inbound as well as outbound traffic may be managed. Table
`1 provides a definitional list of terminology used herein.
`
`TABLE 1
`LIST OF DEFINITIONAL TERMS
`
`ADMISSIONS CONTROL
`
`CLASS SEARCH ORDER
`
`COMMITTED INFORMATION
`RATE (CIR)
`
`EXCEPTION
`
`EXCESS INFORMATION
`RATE (EIR)
`
`FLOW
`
`GUARANTEED
`INFORMATION RATE
`(GIR)
`
`HARD ISOLATION
`
`INSIDE
`
`ISOLATION
`
`OUTSIDE
`
`PARTITION
`
`POLICY
`POLICY INHERITANCE
`
`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.
`A search method based upon traversal
`of a N-ary tree data structure
`containing classes.
`A rate of data flow allocated to reserved
`service traffic for rate based bandwidth
`allocation for a committed 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
`a location for uncommitted bandwidth
`resources.
`A flow is a single instance of a traffic
`c ass. For example, all packets in a TCP
`connection belong to the same flow.
`As do all packets in a UDP session.
`A rate of data flow allocated to reserved
`service traffic for rate based bandwidth
`a location for a committed bandwidth.
`Also called a committed information
`rate (CIR).
`Hard isolation results from the creation
`0 an entirely separate logical channel
`for a designated set of classes.
`On the system side of an access link.
`Outside clients and servers are on the
`0 her 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. See also POLICY
`SEARCH ORDER.
`
`
`
`5
`
`10
`
`15
`
`30
`
`35
`
`45
`
`50
`
`LALII
`
`60
`
`65
`
`POLICY BASED SCALING
`
`RESERVED SERVICE
`
`SCALFD RATE
`
`SERVICE LEVEL
`
`SOFT ISOLATION
`
`TARG ET RATE
`
`TRAFFIC CLASS
`
`UNRESERVED SERVICE
`
`An adjustment of a requested data rate
`for a particular flow based upon the
`policy associated with the flow and
`information about the flow’s potential
`rate.
`Reserved service is a service level
`intended for traflic which “bursts” or
`sends chunks of data. Reserved service
`is defined in terms of a scaled rate.
`Assignment of a data rate based upon
`detected speed.
`A service paradigm having a
`combination of characteristics defined
`by a network manager to handle a
`particular class of traffic. Service
`levels may be designated as either
`reserved or unreserved.
`Restricting GIR allocated for traffic
`classes in a partition.
`A target rate is a combination of a
`guaranteed rate and an excess rate.
`Target rate is a policy-based paradigm.
`Excess rate is allocated by systems
`according to the invention from
`bandwidth that is not consumed by
`reserved service. Policies will demand
`excess rate at a given priority and
`systems according to the invention
`satisfy this demand by a priority level.
`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 service is a service level
`defined in terms of priority in which
`no reservation of bandwidth is made.
`
`1.1 Hardware Overview
`
`The method for [low bandwidth management in a packet
`oriented telecommunications network 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.
`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 X25, Serial Link Internet Protocol
`(SLIP) or the public switched telephone network. This
`interface is shown schematically as a “Network Interface”
`
`EX 1031 Page 24
`EX 1031 Page 24
`
`

`

`6,046,980
`
`7
`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. ATCP/IP “stac ” 44 works
`in conjunction with Operating System 42 to communicate
`with processes over a network or serial connection attaching
`Server 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 3511' in FIG. 1A. TCP/IP
`stack 44', works in conjunction with Operating System 42' to
`communicate with processes over a network or serial con-
`nection attaching Client 25 to Internet 45. Software imple-
`menting the function of a web browser 46’ executes con-
`currently 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'.
`1.2 Network Overview
`
`FIG. 1C is illustrative of the internetworking of a plurality
`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
`
`8
`In FIG. 1C, network 70 is an
`described herein above.
`example of a Token Ring or frame oriented network. Net-
`work 70 links host 71, such as an I

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