throbber

`
`milminiuliul!ipig21,01o111111111111111111
`
`(12) United States Patent
`DiBiasio et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,225,271 B1
`May 29, 2007
`
`(54) SYSTEM AND METHOD FOR
`RECOGNIZING APPLICATION-SPECIFIC
`FLOWS AND ASSIGNING THEM TO
`QUEUES
`
`(75)
`
`Inventors: Michael V. DiBiasio, Westford, MA
`(US); Bruce S. Davie, Belmont, MA
`(US); David R. Oran, Acton, MA (US)
`
`(73)
`
`Assignee: Cisco Technology, Inc., San Jose, CA
`(US)
`
`* )
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 738 days.
`
`(21)
`
`Appl. No.: 09/896,276
`
`(22)
`
`Filed:
`
`Jun. 29, 2001
`
`(51)
`
`(52)
`
`(58)
`
`(56)
`
`Int. Cl.
`GO6F 15/173
`GO6F 15/16
`U.S. Cl.
`
`(2006.01)
`(2006.01)
` 709/240; 709/224; 709/231;
`709/238; 709/241
` 709/223-225,
`Field of Classification Search
`709/231-233, 236, 238-240
`See application file for complete search history.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,519,689 A * 5/1996 Kim
`5,765,032 A
`6/1998 Valizadeh
`5,926,458 A
`7/1999 Yin
`6,006,264 A
`12/1999 Colby et al.
`6,034,945 A
`3/2000 Hughes et al.
`6,088,734 A
`7/2000 Mann et al.
`6,091,709 A
`7/2000 Harrison et al.
`6,091,725 A
`7/2000 Cheriton et al.
`6,104,998 A
`8/2000 Galand et al.
`6,111,877 A
`8/2000 Wilford et al.
`6,157,955 A
`12/2000 Narad et al.
`6,167,445 A
`12/2000 Gai et al.
`6,188,698 B1
`2/2001 Galand et al.
`6,192,032 B1 * 2/2001 Izquierdo
`
`370/232
`
`370/230
`
`709/232
`
`704/500
`
`709/228
`
`370/230
`
`6/2001 Kerr et al.
`6,243,667 B1
`6,286,052 Bl* 9/2001 McCloghrie et al.
`6,292,832 B1
`9/2001 Shah et al.
`6,308,148 B1
`10/2001 Bruins et al.
`6,320,845 B1
`11/2001 Davie
`
`709/238
`
`(Continued)
`
`OTHER PUBLICATIONS
`
`RSVP Support for Low Latency Queueing, Cisco Systems Incor-
`porated, San Jose, CA, Jul. 24, 2000, pp. 1-18.
`
`(Continued)
`
`Primary Examiner Ario Etienne
`Assistant Examiner Hussein El-chanti
`(74) Attorney, Agent, or Firm Cesari and McKenna LLP
`
`(57)
`
`ABSTRACT
`
`A system assigns network traffic flows to appropriate queues
`and/or queue servicing algorithms based upon one or more
`flow parameters contained in reservation requests associated
`with the traffic flows. The system may be disposed at an
`intermediate network device within a computer network.
`The intermediate network device includes a reservation
`engine, a packet classification engine, an admission control
`entity, a traffic scheduler, and a flow analyzer. The flow
`analyzer includes or has access to a memory that is prepro-
`grammed with one or more heuristic sets for use in evalu-
`ating the flow parameters of reservation requests. When a
`reservation request that includes one or more flow param-
`eters characterizing the bandwidth and/or forwarding
`requirements of the anticipated traffic flow is received, the
`flow analyzer applies the heuristic sets. Depending on which
`set of heuristics, if any, the parameters satisfy, the flow
`analyzer selects the appropriate queue and/or queue servic-
`ing algorithm for the flow.
`
`28 Claims, 10 Drawing Sheets
`
`424
`
`RSVP
`ENGINE
`
`504
`
`PQ
`
`514
`PACKETS
`RECEIVED
`FOR
`TRANSMISSION
`
`CLASSIFICATION
`ENGINE
`
`502
`
`RESERVED —506
`QUEUES
`506a
`Q1
`
`2
`
`r.506b
`
`
`506c
`
`506d
`
`3
`
`4
`
`rr
`
`0
`
`LU
`CO
`LU
`
`—510
`
`512
`
`OUTPUT
`
`516
`
`OUTPUT
`INTERFACE
`406b
`
`DEFAULT
`QUEUE
`508
`
`Cloudflare - Exhibit 1011, page 1
`
`Cloudflare - Exhibit 1011, page 1
`
`

`

`US 7,225,271 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
` 370/443
`
`3/2002 Elwalid et al.
`6,353,616 B1 *
`10/2002 Mohaban et al.
`6,463,470 B1
`10/2002 Naveh et al.
`6,466,984 B1
`6,640,248 B1 * 10/2003 Jorgensen
`6,654,373 B1 * 11/2003 Maher, III et al.
`6,665,273 B1
`12/2003 Goguen et al.
` 370/235
`6,690,647 B1 *
`2/2004 Tang et al.
` 370/328
`6,738,361 B1 *
`5/2004 Immonen et al.
` 370/395.21
`6,744,767 B1 * 6/2004 Chiu et al.
`6,909,708 B1 * 6/2005 Krishnaswamy et al ... 370/352
`7,072,336 B2 *
`7/2006 Barany et al.
` 370/389
`
` 709/226
` 370/392
`
`OTHER PUBLICATIONS
`
`VoIP Call Admission Control Using RSVP, Cisco Systems Incor-
`porated, San Jose, CA, Aug. 7, 2000, pp. 1-16.
`White Paper: Diffserv-The Scalable End-to-End Qos Model, Cisco
`Systems, Incorporated, San Jose, CA, Mar. 1, 2001, pp. 1-16.
`
`Davie, B., Implementing Qos for Packet Telephony, Packet Maga-
`zine, Cisco Systems Incorporated, San Jose, CA, Apr. 2000, pp. 1-6.
`Wroclawski, J., Integrated Service Mappings for Differentiated
`Services Networks, Internet Engineering Task Force, Internet Draft,
`draft-ietf-iss11-ds-map-01.txt, http://www.ietf.org, Feb. 2001, pp.
`1-19.
`Wroclawski, J., Specification of the Controlled-Load Network Ele-
`ment Service, Internet Engineering Task Force, Request for Com-
`ments (RFC) 2211 http://www.ietf.org, Sep. 1997, pp. 1-19.
`Bernet, Y, et al., A Framework for Integrated Services Operation
`over Diffsery Networks, Internet Engineering Task Force, Request
`for Comments (RFC) 2998, http://www.ietf.org, Nov. 2000, pp.
`1-31.
`Bernet, Y., et al., Application and Sub Application Identity Policy
`Element for Use with RSVP, Internet Engineering Task Force,
`Request for Comments (RFC) 2872, http://www.ietf.org, Jun. 2000,
`pp. 1-6.
`
`* cited by examiner
`
`Cloudflare - Exhibit 1011, page 2
`
`Cloudflare - Exhibit 1011, page 2
`
`

`

`lualud °S11
`
`OI Jo 1 WIN
`
`la utszt`L sa
`
`102
`/
`MAC
`DA
`
`104
`
`MAC
`SA
`
`108
`
`USER
`PRIORITY
`
`L
`
`:100
`
`c
`
`106
`
`DATA
`
`132
`
`122
`
`DS
`
`[
`
`
`ToS
`
`FIG. 1A (PRIOR ART)
`
`124
`,
`PROTOCOL
`
`126
`,
`IP
`SA
`
`128
`,
`IP
`DA
`
`c
`
`120
`
`130
`r
`DATA
`
`FIG. 1B (PRIOR ART)
`
`Ell
`
`K 150
`
`152
`/
`SOURCE
`PORT
`
`154
`/
`DEST.
`PORT
`
`156
`/
`DATA
`
`FIG. 1 C (PRIOR ART)
`
`Cloudflare - Exhibit 1011, page 3
`
`Cloudflare - Exhibit 1011, page 3
`
`

`

`U.S. Patent
`
`May 29, 2007
`
`Sheet 2 of 10
`
`US 7,225,271 B1
`
`r
`
`I
`
`offfl
`
`CN
`
`CN
`CV
`
` J
`
`CN
`
`0
`U-
`
`CN
`
`CN
`
`On
`
`z
`
`CD
`O
`CN
`
`CD
`
`CN
`
`cal
`
`CO O
`/
`
`, CO
`i
`
`8
`
`Cloudflare - Exhibit 1011, page 4
`
`Cloudflare - Exhibit 1011, page 4
`
`

`

`lualud °S11
`
`In JO £ JamiS
`
`la utszt`L sa
`
`( -202
`
`302
`7
`
`VOICE AGENT
`310
`
`/
`
`CALL
`SIGNALLING
`ENTITY
`
`RSVP ENTITY
`306
`7
`RSVP
`MESSAGE
`GENERATOR
`
`304
`7
`
`7 308
`
`RSVP
`STATE
`
`MACHINE 1
`
`COMMUNICATION FACILITY
`
`TO/FROM
`NETWORK
`200
`
`FIG. 3
`
`Cloudflare - Exhibit 1011, page 5
`
`Cloudflare - Exhibit 1011, page 5
`
`

`

`lualud °S11
`
`in JO 17 JamiS
`
`la utszt`L sa
`
`/ 208
`
`N
`-1/
`
`- 422
`
`FORWARDING ENGINE
`
`RSVP ENGINE
`
`
`RSVP MESSAGE GENERATOR
`
`
`
`1-405
`I
`
`424
`
`426
`
`RSVP STATE MACHINE ENGINE-1--- 428
`
`SESSION TABLE
`
`1,700
`
`ADMISSION CONTROL ENTITY1---- 430
`
`FLOW ANALYZER
`
`HEURISTIC STORE
`
`--432
`
`434
`
`/ 7-
`
`FIG. 4
`
`PACKET/FRAME
`RECEIVER
`TRANSMITTER OBJECT
`
`406a
`
`408a
`
`410a
`
`412a
`
`406b
`
`I
`
`408b
`
`I
`
`410b
`
`412b
`
`I
`
`I
`
`402
`
`406
`
`408
`,.._,,,..
`410H
`
`
`
`412
`H
`
`404,, TRAFFIC SCHEDULER
`414
`
`I
`I
`1
`
`4161
`
`METER ENTITY
`
`MARKER ENTITY
`
`418 1
`
`SHAPER ENTITY
`420 -- DROPPER ENTITY I
`
`Cloudflare - Exhibit 1011, page 6
`
`Cloudflare - Exhibit 1011, page 6
`
`

`

`Walud *S11
`
`OT JO S JamiS
`
`Ill utszt`L sa
`
`504
`
`?
`
`PQ
`
`I
`
`510
`
`512
`?
`
`-,-pp.-
`
`OUTPUT
`
`516
`4._
`
`QUEUE SELECTOR / SCHEDULER
`
`RESERVED —506
`QUEUES
`r 506a
`
`
`Qi
`
`21
`
`Q3
`
`
`
`Q4
`
`506 b
`I.
`
`506c
`I.
`
`506d
`
`d DEFAULT
`
`QUEUE
`
`508
`
`FIG. 5
`
`424
`
`RSVP
`ENGINE
`
`514
`?
`PACKETS
`RECEIVED
`FOR
`TRANSMISSION
`
`CLASSIFICATION
`ENGINE
`
`r
`502
`
`OUTPUT
`INTERFACE
`406b
`
`Cloudflare - Exhibit 1011, page 7
`
`Cloudflare - Exhibit 1011, page 7
`
`

`

`U.S. Patent
`
`May 29, 2007
`
`Sheet 6 of 10
`
`US 7,225,271 B1
`
`CALL SIGNALING ENTITY DETECTS START
`OF CALL
`
`[
`
`RSVP ENGINE GENERATES ONE OR MORE PATH
`MESSAGES IN ORDER TO RESERVE NETWORK
`RESOURCES FOR THE ANTICIPATED
`VOICE TRAFFIC
`
`602
`
`604
`
`T
`
`PATH MESSAGE IS FORWARDED TOWARD DESTINATION/
`RECEIVER ENTITY
`
`606
`
`RECEIVED PATH MESSAGE IS PASSED TO INTERMEDIATE
`NETWORK DEVICE'S RSVP ENGINE FOR PROCESSING
`
`608
`
`Tv
`RSVP ENGINE STORES CONTENTS OF RECEIVED PATH
`MESSAGE INCLUDING ADDRESS OF PREVIOUS HOP
`
`I
`INTERMEDIATE NETWORK DEVICE LOADS ITS ADDRESS
`INTO THE PATH MESSAGE AND FORWARDS THE PATH
`MESSAGE TOWARD THE DESTINATION/RECEIVER ENTITY
`
`1
`DESTINATION/RECEIVER ENTITY RESPONDS TO PATH
`MESSAGE BY GENERATING AND SENDING A RSVP RESV
`MESSAGE TOWARD SOURCING ENTITY
`
`ly
`RECEIVED RESV MESSAGE IS PASSED TO INTERMEDIATE
`NETWORK DEVICE'S RSVP ENGINE FOR PROCESSING
`
`610
`
`612
`
`614
`
`616
`
`TO FIG. 6B
`
`FIG. 6A
`
`Cloudflare - Exhibit 1011, page 8
`
`Cloudflare - Exhibit 1011, page 8
`
`

`

`U.S. Patent
`
`May 29, 2007
`
`Sheet 7 of 10
`
`US 7,225,271 B1
`
`FROM FIG. 6A
`
`[
`
`RSVP ENGINE SEARCHES TS SESSION TABLE FOR A
`MATCHING ENTRY TO THE RECEIVED RESV MESSAGE
`
`ANALYZE FLOW PARAMETERS USING ONE OR MORE
`SETS OF HEURISTICS
`
`618
`
` 620
`
`622
`DO
`FLOW PARAMETERS
`SATISFY APPLIED SET OF
`HEURISTICS
`
`NO
`
`YES
`
`ANTICIPATED TRAFFIC FLOW WILL BE CARRYING
`REAL-TIME VOICE TRAFFIC
`
`624
`
`SELECT APPROPRIATE QUEUE SELECTION STRATEGY
`AND QUEUE FOR THE REAL-TIME VOICE TRAFFIC FLOW
`
`626
`
`638
`
`ANTICIPATED TRAFFIC FLOW WILL BE CARRYING
`INFORMATION OTHER THAN REAL-TIME VOICE TRAFFIC
`
`1.4
`
`640—
`
`SELECT APPROPRIATE QUEUE SELECTION STRATEGY
`AND QUEUE FOR THE TRAFFIC FLOW DEEMED TO BE
`CARRYING OTHER THAN REAL-TIME VOICE
`
` (GO TO BLOCK 628)-- 627
`
`FIG. 6B
`
`Cloudflare - Exhibit 1011, page 9
`
`Cloudflare - Exhibit 1011, page 9
`
`

`

`U.S. Patent
`
`May 29, 2007
`
`Sheet 8 of 10
`
`US 7,225,271 B1
`
`FROM FIG. 6B
`
`628
`
`NO
`
`DOES
`RESERVATION REQUEST
`PASS ADMISSION
`CONTROL
`?
`VYES
`ASSIGN AND RESERVE SELECTED RESOURCES TO
`THE TRAFFIC FLOW OF THE RESERVATION REQUEST
`
`630
`
`FORWARD RESV MESSAGE TO NEXT HOP TOWARD
`SOURCING ENTITY
`
`I.,_ 632
`
`634
`
`GENERATE AND SEND RESERVATION ERROR (ResvErr)
`MESSAGE BACK TO DESTINATION/RECEIVER ENTITY
`
`FIG. 6C
`
`Cloudflare - Exhibit 1011, page 10
`
`Cloudflare - Exhibit 1011, page 10
`
`

`

`lualud °S11
`
`OT JO 6 WIN
`
`la utszt`L sa
`
`( 714
`
`SELECTED
`PHB
`
`EF
`
`AF
`
`/
`
`700
`
`( 702
`
`( 704
`
`RSVP SESSION TABLE
`( 706
`( 708
`
`( 710
`
`SOURCE
`ADDRESS
`
`SOURCE DESTINATION DESTINATION PROTOCOL
`PORT
`ADDRESS
`PORT
`
`716a
`716b
`716c —
`716d
`716e —
`
`123.100.106.148
`155.136.114.101
`165.225.147.174
`203.238.237.106
`123.100.106.148
`
`555
`718
`951
`114
`555
`
`111.222.104.205
`222.123.154.158
`156.189.208.205
`248.226.143.218
`111.132.141.168
`
`1061
`1032
`1030
`1028
`1061
`
`TCP
`TCP
`TCP
`UDP
`UDP
`
`FIG. 7
`
`Cloudflare - Exhibit 1011, page
`
`713
`
`712
`
`(
`PREVIOUS
`HOP
`ADDRESS
`
`(
`QUEUE
`SELECTION
`STRATEGY/
`QUEUE
`123.115.119.102
`PQ
`154.122.166.177 WFQ/Q2
`222211.155.156 WFO/Q3
`123.118.150.160
`PQ
`123.116.118.012 WFQ/DQ
`
`Cloudflare - Exhibit 1011, page 11
`
`

`

`U.S. Patent
`
`May 29, 2007
`
`Sheet 10 of 10
`
`US 7,225,271 B1
`
`816
`
`818
`
`RSVP CHECKSUM
`RSVP LENGTH
`
`rVERS.
`
`814
`812
`FLAGS MSG.TYPE
`RESV,
`SEND TTL
`820
`
`822
`
`X826
`LENGTH
`
`824
`
`( 830
`C-TYPE
`
`1
`1
`1
`
`802
`
`804
`
`( 828
`CLASS-NUM
`IP SOURCE ADDRESS
`SOURCE PORT
`\ 834
`
`832
`
`836
`
`838
`
`.840
`
`1
`
`800
`
`vi_
`
`LENGTH
`
`C-TYPE
`CLASS-NUM
`LENGTH
`SERV. HEADER
`LEN. OF SERV. 1 DATA
`PARAMETER LENGTH
`PARAM. ID PARAM. FLAGS
`842
`TOKEN BUCKET RATE (r)
`TOKEN BUCKET SIZE (b)
`844
`846
`PEAK DATA RATE (p)
`MINIMUM POLICED UNIT
`848 (m)
`850 (M)
`MAXIMUM PACKET SIZE
`
`/ 854
`( 852
`CLASS-NUM
`LENGTH
`IP DESTINATION ADDRESS
`DEST PORT
`‘860
`
`PROTOCOL ID
`
`858
`
`„..856
`,..._____.
`C-TYPE
`
`806
`
`808
`
`FIG. 8
`
`Cloudflare - Exhibit 1011, page 12
`
`Cloudflare - Exhibit 1011, page 12
`
`

`

`1
`SYSTEM AND METHOD FOR
`RECOGNIZING APPLICATION-SPECIFIC
`FLOWS AND ASSIGNING THEM TO
`QUEUES
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The present invention relates to computer networks and,
`more specifically, to the application of Quality of Service
`(QoS) treatments to network traffic flows.
`2. Background Information
`Computer networks typically comprise a plurality of
`interconnected entities. An entity may consist of any device,
`such as a computer or end station, that "sources" (i.e.,
`transmits) or "sinks" (i.e., receives) datagrams (e.g., packets
`and/or frames). A common type of computer network is a
`local area network ("LAN") which typically refers to a
`privately owned network within a single building or campus.
`LANs typically employ a data communication protocol
`(LAN standard), such as Ethernet, FDDI or token ring, that
`defines the functions performed by the data link and physical
`layers of a communications architecture (i.e., a protocol
`stack). In many instances, several LANs may be intercon-
`nected by point-to-point links, microwave transceivers, sat-
`ellite hook-ups, etc. to form a wide area network ("WAN")
`or intranet that may span an entire country or continent.
`One or more intermediate network devices are often used
`to couple LANs together and allow the corresponding enti-
`ties to exchange information. For example, a bridge may be
`used to provide a "bridging" function between two or more
`LANs. Alternatively, a switch may be utilized to provide a
`"switching" or interconnection function for transferring
`information between a plurality of LANs or end stations.
`Bridges and switches may operate at various levels of the
`communication protocol stack. For example, a switch may
`operate at layer 2 which, in the Open Systems Interconnec-
`tion (OSI) Reference Model, is called the data link layer and
`includes the Logical Link Control (LLC) and Media Access
`Control (MAC) sub-layers. Data frames at the data link layer
`typically include a header containing the MAC address of
`the entity sourcing the message, referred to as the source
`address, and the MAC address of the entity to whom the
`message is being sent, referred to as the destination address.
`To perform the switching function, layer 2 switches examine
`the MAC destination address of each data frame received on
`a source port. The frame is then switched onto the destina-
`tion port(s) associated with that MAC destination address.
`Other network devices, commonly referred to as routers,
`may operate at higher communication layers, such as layers
`3, 4 or even higher. Layers 3 and 4 of Transmission Control
`Protocol/Internet Protocol (TCP/IP) networks correspond to
`the IP and TCP/User Datagram Protocol (UDP) layers,
`respectively. Data frames at the IP layer also include a
`header that contains an IP source address and an IP desti-
`nation address. Routers or layer 3 switches may re-assemble
`or convert received data frames from one LAN standard
`(e.g., Ethernet) to another (e.g. token ring). Thus, layer 3
`devices are often used to interconnect dissimilar subnet-
`works. Many equipment manufacturers include both layer 2
`switching and layer 3 routing functions in a single device.
`Voice Over IP (VoIP)
`Traditionally, computer networks were used to exchange
`static files or data, such as text and spreadsheet files, while
`the Public Switched Telephone Network (PSTN) was used to
`exchange voice information. Computer networks, however,
`are increasingly being used to transport "voice" information.
`
`US 7,225,271 B1
`
`5
`
`2
`Voice over IP (VoIP) typically refers to a group of technolo-
`gies used to transmit voice information over computer
`networks. Such networks include a plurality of voice agents
`that convert voice information from its traditional telephony
`form to a form suitable for packet transmission. In other
`words, the voice agent encodes, compresses and encapsu-
`lates the voice information into a plurality of data packets.
`Examples of voice agents include end stations running voice
`applications, IP telephones, VoIP gateways, certain private
`10 branch exchanges (PBXs), etc. A calling party uses a voice
`agent to initiate a VoIP call. Once the voice information has
`been converted into packet format, it is carried by the
`computer network to a second voice agent configured to
`serve the called party. Voice traffic, unlike static data files or
`15 records, is highly sensitive to delay and to lost packets. That
`is, delays in receiving data packets carrying voice informa-
`tion at the called party's voice agent or the loss of such data
`packets can seriously degrade the quality of the call. Accord-
`ingly, packets carrying voice information must be delivered
`20 to the called party with a high probability and in a timely
`manner.
`Computer networks include numerous services and
`resources for use in forwarding network traffic. For example,
`different network links, such as Fast Ethernet, Asynchronous
`25 Transfer Mode (ATM) channels, SONET links, satellite
`links, etc., offer different speed and bandwidth capabilities.
`Particular
`intermediate devices also
`include specific
`resources or services, such as priority queues, filter settings,
`traffic shapers, queue selection strategies, congestion control
`30 algorithms, etc. that affect the rate at which traffic moves
`through the device and thus across the network. Depending
`on the selection or allocation of such resources or services,
`network traffic for different sources and sinks can be for-
`warded at different speeds or rates, thereby controlling the
`35 loss and/or delay experienced by the traffic. To take advan-
`tage of these services and resources, individual frames or
`packets can be marked so that intermediate devices will treat
`them in a predetermined manner.
`More specifically, the Institute of Electrical and Electron-
`40 ics Engineers (IEEE), in an appendix (802.1p) to the 802.1D
`bridge specification standard, describes additional informa-
`tion that can be loaded into the MAC header of Data Link
`Layer frames. FIG. 1A is a partial block diagram of a Data
`Link frame 100 which includes a MAC destination address
`45 (DA) field 102, a MAC source address (SA) field 104 and a
`data field 106. In accordance with the 802.1p standard, a
`user_priority field 108, among others, is inserted after the
`MAC SA field 104. The user_priority field 108 may be
`loaded with a predetermined value (e.g., 0-7) that is asso-
`50 ciated with a particular treatment. Possible treatments
`include background, best effort, excellent effort, etc. Net-
`work devices examine the user_priority field 108 of received
`frames 100 and apply the corresponding treatment to the
`frames. For example, an intermediate device may have a
`55 plurality of transmission queues per port each queue having
`a different priority, and may assign frames to different
`queues of a destination port on the basis of the frame's user
`priority value.
`FIG. 1B is a partial block diagram of a Network Layer
`60 packet 120 corresponding to the Internet Protocol (IP).
`Packet 120 includes a type_of service (ToS) field 122, a
`protocol field 124, an IP source address (SA) field 126, an
`IP destination address (DA) field 128 and a data field 130.
`The ToS field 122 is used to specify a particular service to
`65 be applied to the packet 120, such as high reliability, fast
`delivery, accurate delivery, etc. It comprises a number of
`sub-fields, including a three bit IP precedence (IPP) field and
`Cloudflare - Exhibit 1011, page 13
`
`Cloudflare - Exhibit 1011, page 13
`
`

`

`US 7,225,271 B1
`
`3
`three one bit flags (Delay, Throughput and Reliability). By
`setting the various flags, a source may indicate which overall
`service it cares most about (e.g., throughput versus reliabil-
`ity). The protocol field 124 is used to identify the next higher
`protocol that is to receive the packet. Version 6 of the
`Internet Protocol (IPv6) similarly defines a traffic class field,
`which is also intended to be used for defining the type of
`service to be applied to the corresponding packet.
`Recently, a working group of the Internet Engineering
`Task Force (IETF) developed a specification standard for
`replacing the ToS field 112 of Network Layer packets 120
`with a one octet differentiated services (DS) field 132 that
`can be loaded with a differentiated services codepoint
`(DSCP) value. Layer 3 devices that are DS compliant apply
`a particular per-hop behavior (PHB) to packets based on the
`value contained in their DS fields 132. Examples of PHBs
`defined by the IETF include expedited forwarding (EF) and
`assured forwarding (AF).
`FIG. 1C is a partial block diagram of a Transport Layer
`packet 150. In the TCP/IP Reference Model, the transport
`layer corresponds to the Transmission Control Protocol
`(TCP) or the User Datagram Protocol (UDP). The transport
`layer packet 150 preferably includes a source port field 152,
`a destination port field 154 and a data field 156, among
`others. Fields 152 and 154 are preferably loaded with the
`predefined or dynamically agreed-upon TCP or UDP port
`numbers being utilized by the respective applications of the
`corresponding network entities. A TCP or UDP packet 150
`is typically encapsulated within an IP packet 120 by placing
`it in the data portion 130 of the IP packet 120. The IP packet
`120, in turn, is encapsulated in the data portion 106 of a Data
`Link frame 100 for transmission across a computer link.
`The Resource Reservation Protocol
`As set forth above, to support VoIP, packets carrying voice
`information must typically be delivered within narrow time
`constraints and with high probability. Although many com-
`puter networks have the resources and services to meet the
`delivery requirements of VoIP, these resources and services
`must be allocated, preferably in advance, to the correct
`network traffic. The Resource reSerVation Protocol (RSVP), 40
`which is set forth at Request for Comments (RFC) 2205, is
`a signaling protocol that was developed so that entities
`(typically referred to as receivers) could reserve bandwidth
`within their computer networks to receive a desired traffic
`flow, such as voice information or a multimedia stream, from
`one or more sourcing entities.
`Pursuant to RSVP, sources send RSVP Path messages
`identifying themselves and indicating the bandwidth needed
`to receive their programming or content. These messages
`proceed hop-by-hop through the intermediate network
`devices of the computer network, making those devices
`aware of the possibility that a reservation of resources may
`be required. If a receiver is interested in the programming or
`content offered by a particular source, it responds with a
`RSVP Reservation (Resv) message, which travels hop-by-
`hop back to the source. At each hop, the corresponding
`intermediate device establishes a session for the receiver and
`sets aside sufficient resources to provide the requested
`bandwidth for the desired traffic flow. If the resources are not
`available, the reservation is explicitly refused so that the
`receiver knows it cannot depend on resources being devoted
`to its traffic. By using RSVP, packets carrying voice infor-
`mation can be accorded the resources and services they need
`to ensure timely delivery.
`In some RSVP implementations, each traffic flow, such as
`a streaming multimedia flow, a real-time voice flow, a video
`conference flow, etc., is assigned its own reserved queue for
`
`4
`transmission purposes. Each reserved queue, moreover, is
`given a weight and a selection strategy, such as Weighted
`Fair Queuing (WFQ), is used to select packets from among
`the various queues for transmission. Many practical imple-
`5 mentations of flow-based queuing, however, do not always
`result in real-time voice flows being forwarded at sufficient
`speeds to avoid a degradation in call quality.
`Furthermore, with RSVP, path and reservation state is
`maintained for each flow. This presents scalability problems
`10 as the number of flows increases. Indeed, certain devices,
`such as core routers, may have to maintain thousands or tens
`of thousands of RSVP flows. This can severely tax the
`router's processor and memory resources. The path and
`reservation states, moreover, must also be periodically
`15 refreshed, thereby increasing the number of "overhead"
`messages that are forwarded through the network.
`One solution to the real-time traffic forwarding and scal-
`ability problems is to have RSVP interoperate with the PHBs
`of the Differentiated Services (DiffServ) Model. With this
`20 solution, per flow state is offloaded to the edges of one or
`more DiffSery networks, and packets corresponding to the
`flow are marked before entering the DiffSery networks with
`appropriate DSCP. Within the DiffSery networks, the RSVP
`messages are ignored and RSVP states are not maintained.
`25 Instead, packets are provided with the PHB associated with
`the DSCP value with which they have been marked.
`There are, nonetheless, several drawbacks with this
`approach. For example, the source entity or the edge device
`must be configured to mark the packets of the traffic flow
`30 with the correct DSCP. Each device within the DiffSery
`networks, moreover, must be configured to recognized the
`marked traffic and apply the corresponding PHB. Precau-
`tions must be taken to ensure that only "approved" or
`"trusted" entities or devices mark traffic with DSCP values.
`35 Otherwise, the network could suffer theft-of-service attacks.
`Furthermore, packets traversing multiple DiffSery networks
`that belong to different administrative domains may need to
`be re-marked, unless the domains can agree upon common
`marking values.
`
`SUMMARY OF THE INVENTION
`
`Briefly, the invention relates to a system for assigning
`network traffic flows to appropriate queues and/or queue
`45 servicing algorithms based upon one or more flow param-
`eters contained in reservation requests associated with the
`traffic flows. In the illustrative embodiment, an intermediate
`network device disposed within a computer network
`includes a reservation engine, a packet classification engine,
`so an admission control entity, a traffic scheduler and a flow
`analyzer. The flow analyzer includes or has access to a
`memory that is preprogrammed with heuristics for use in
`evaluating the flow parameters of reservation requests. A
`network entity that wishes to receive certain information,
`55 such as real-time voice information, issues a reservation
`request to the computer network. The network entity loads
`the reservation request with one or more flow parameters
`that characterize the bandwidth and/or forwarding require-
`ments of the anticipated traffic flow.
`60 When the reservation request is received at the interme-
`diate network device, it is passed to the flow analyzer. The
`flow analyzer applies the predefined heuristics from the
`memory to identify and select the queue and/or the queue
`servicing algorithm that best meets the requirements of the
`65 traffic flow. The traffic flow is then assigned to the selected
`queue. In particular, the packet/frame classification engine is
`instructed to identify packets corresponding to the traffic
`Cloudflare - Exhibit 1011, page 14
`
`Cloudflare - Exhibit 1011, page 14
`
`

`

`US 7,225,271 B1
`
`5
`flow, and the traffic scheduler is directed to apply the
`reserved resources, i.e., the selected queue, to packets
`matching the identified flow.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The invention description below refers to the accompa-
`nying drawings, of which:
`FIGS. 1A—C, previously discussed, are partial block dia-
`grams of network messages;
`FIG. 2 is a highly schematic block diagram of a computer
`network;
`FIG. 3 is a highly schematic block diagram of a network
`entity;
`FIG. 4 is a highly schematic block diagram of an inter-
`mediate network device in accordance with the present
`invention;
`FIG. 5 is a highly schematic block diagram of an interface
`of the device of FIG. 4;
`FIGS. 6A—C is a flow diagram of the method of the
`present invention;
`FIG. 7 is a highly schematic illustration of a data struc-
`ture; and
`FIG. 8 is a block diagram of a reservation request mes-
`sage.
`
`DETAILED DESCRIPTION OF AN
`ILLUSTRATIVE EMBODIMENT
`
`FIG. 2 is a highly schematic diagram of a computer
`network 200. The network 200 includes first, second and
`third voice agents 202, 204, 206 that are interconnected by
`a plurality of intermediate network devices. More specifi-
`cally, first voice agent 202 is coupled to a first hop network
`device, such as router 208, which, in turn, is coupled to a
`second network device, such as router 210. Router 210, in
`turn, is coupled to a network cloud 212. The network cloud
`212 may consist of a plurality of network devices, local area
`networks (LANs), and end stations. Second voice agent 204
`is coupled to a first hop network device, such as router 214,
`which is coupled to router 216. Router 216, in turn, is
`coupled to network cloud 212. Third voice agent 206 is
`coupled to router 216.
`In the illustrative embodiment, voice agents 202, 204, 206
`are intermediate network devices 218-220 that have been
`configured to provide VoIP gateway support to other devices
`or entities, such as conventional analog telephone sets
`222-224, coupled thereto. Suitable VoIP gateway devices
`include the 3600 series of routers from Cisco Systems, Inc.
`of San Jose, Calif.
`It should be understood that the network configuration
`200 of FIG. 2 is for illustrative purposes only and that the
`present invention will operate with other, possibly far more
`complex, network topologies.
`FIG. 3 is a highly schematic, partial block diagram of a
`voice agent, such as voice agent 202. Voice agent 202, more
`specifically device 218, preferably includes a communica-
`tion facility 302 and one or more resource reservation
`components, such as a Resource reSerVation Protocol
`(RSVP) entity or engine 304. The RSVP entity 304, which
`includes a RSVP message generator 306 and a RSVP state
`machine engine 308, operates in accordance with the RSVP
`specification standard, which is set forth at Request for
`Comments (RFC) 2205 and is hereby incorporated by ref-
`erence in its entirety. Voice agent 202 further includes a call
`signaling entity 310 in communicating relationship with the
`RSVP entity 304 and the communication facility 302. Entity
`
`25
`
`6
`310 operates in accordance with a signaling protocol, such
`as H.323, Session Initiation Protocol (SIP), Media Gateway
`Control Protocol (MGCP) or MEGACO, which is an alter-
`native to MGCP. The RSVP entity 304 is also in commu-
`5 nicating relationship with the communication facility 302,
`and can thus exchange information, including network pack-
`ets and frames, with facility 302.
`The communication facility 302 preferably includes one
`or more software libraries for implementing a communica-
`10 tion protocol stack allowing voice agent 202 to exchange
`messages with other entities of network 200, such as voice
`agents 204 and/or 206. The communication facility 302 may,
`for example, include software layers corresponding to the
`Transmission Control Protocol/Internet Protocol (TCP/IP)
`15 communication stack, although other communication pro-
`tocols, such as Asynchronous Transfer Mode (ATM) cells,
`the Internet Packet Exchange (IPX) protocol, the AppleTalk
`protocol, the DECNet protocol and/or NetBIOS Extended
`User Interface (NetBEUI), among others, could be utilized.
`20 Communication facility 302 further includes transmitting
`and receiving circuitry and components, including one or
`more network interface cards (NICs) that establish one or
`more physical ports for exchanging data packets and frames
`with router 208 to which it is connected.
`It should be understood that voice agents 204 and 206
`include these same components, among others.
`FIG. 4 is a highly schematic, partial block diagram of an
`intermediate network device in accordance with the present
`invention, such as router 208, which is the first hop router
`30 from voice agent 202. Router 208 preferably includes one or
`more packet/frame receiver transmitter objects 402, a traffic
`scheduler 404, and a forwarding engine 405. The packet/
`frame receiver transmitter object 402 is preferably config-
`ured to provide one or more interfaces 406, 408, 410 and 412
`35 or ports for receiving and sending network messages by
`router 208. Each interface, e.g., interface 406, moreover,
`includes an inbound side 406a and an outbound side 406b.
`The traffic scheduler 404 includes a plurality of resources or
`services that are used by router 208 to forward packets. For
`40 example, scheduler 404 may include one or more metering
`entities 414, one or more marker entities 416, one or more
`shaper entities 418, and one or more dropper entities 420.
`The packet/frame receiver transmitter object 402, the
`traffic scheduler 404, and forwarding engine 405 are all in
`45 communicating relationship with each other via one or more
`communication paths or bus structures, such as system bus
`422, so that network messages as well as commands may be
`exchanged between them.
`Router 208 may also include one or more resource
`so allocation and reservation components. In the preferred
`embodiment, router 208 includes a RSVP

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