throbber
US007095715E2
`
`(12)
`
`United States Patent
`Buckman et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,095,715 B2
`Aug. 22, 2006
`
`(54) SYSTEM AND METHOD FOR PROCESSING
`NETWORK PACKET FLOWS
`
`(75) Inventors: Charles R. Buckman, Austin, TX
`(US); Dennis J. Cox, Austin, TX (US);
`Donovan M. Kolbly, Austin, TX (US);
`Craig S. Cantrell, Austin, TX (US);
`Brian C. Smith, Fort Worth, TX (US);
`Jon H. Werner, Austin, TX (US);
`Marc Willebeek-LeMair, Austin, TX
`(US); Joe Wayne Blackard, Austin, TX
`(US); Francis S. Webster, III, Austin,
`TX (US)
`(73) Assignee: 3Com Corporation, Marlborough, MA
`(US)
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 956 days.
`(21) Appl. No.: 09/897,189
`
`(22) Filed:
`
`Jul. 2, 2001
`
`(65)
`
`Prior Publication Data
`US 2003 FOO12147 A1
`Jan. 16, 2003
`
`(51) Int. Cl.
`(2006.01)
`GOIR 3L/08
`(2006.01)
`H04L 2/28
`(52) U.S. Cl. ....................... 370/230; 370/392; 370/401
`(58) Field of Classification Search ................ 370/389,
`370/392, 400, 401, 428,474, 466,412, 230,
`370/235, 263; 713/150, 153, 154, 160;
`709/224, 230, 236
`See application file for complete search history.
`References Cited
`U.S. PATENT DOCUMENTS
`651,636 A
`6, 1900 McCarthy ...................... 52/54
`5,101,402 A
`3/1992 Chiu et al. .................. TO9,224
`5,648,965 A
`7, 1997 Thadani et al. ............. 370,241
`5,742,772 A
`4, 1998 Sreenan ...................... TO9,226
`
`(56)
`
`
`
`7, 1998 McCreery et al. .......... TO9,231
`5,787.253 A
`5,835,726 A 11/1998 Shwed et al. .....
`... TO9,229
`5,845,267 A 12/1998 Ronen ......................... TO5/40
`6,028,842 A * 2/2000 Chapman et al. ........... 370,235
`6,091,709 A * 7/2000 Harrison et al. ......
`... 370,235
`6,104,700 A * 8/2000 Haddock et al. ......
`... 370,235
`6,108,700 A
`8, 2000 Maccabee et al. .......... 709/224
`6,172,990 B1* 1/2001 Deb et al.........
`... 370/474
`35E. S. E. A. O'S
`OShiZawa et al. .........
`6.286,030 B1
`9/2001 Wenig et al. ............... TO9,203
`6.292.489 B1* 9, 2001 Fukushima et all
`370/401
`4- 4
`-
`
`- - - - - - - - -
`
`(Continued)
`OTHER PUBLICATIONS
`
`share Enterprise Solutions; Packeteer, Inc. (www.packeteer.
`Network-Based Application Recognition, Release 12.0(5)XE2.
`12.1(1) E and 12.1(2)E, Cisco Systems (www.cisco.com).
`Primary Examiner Doris H. To
`Assistant Examiner—Ian N. Moore
`(74) Attorney, Agent, or Firm—Hamilton & Terrile, LLP
`
`(57)
`
`ABSTRACT
`
`A system and method provides a broadband network node
`for a best effort network such as the Internet or intranets
`which Supports the inexpensive and rapid deployment of
`services to the best efforts network. Separate data path and
`control path mechanisms allow high-speed data transfers
`with parallel processing flows for the data path that are
`controlled across data flows by the control path. Packets are
`classified, modified and shaped to enable the service on the
`network with an accountant to track packet traffic for control
`and billing purposes. A series of processing blades perform
`a modification function for each blade that processes packets
`according to classifications. The processing blades are
`modular and scalable for insertion in the broadband switch
`to rapidly adapt the broadband network node for new
`services.
`
`5 Claims, 1 Drawing Sheet
`
`CLASSIFY
`ENGINE
`
`MODIFY/
`24 PROCESS
`ENGINE
`16
`
`ACCOUNANT ENGINE
`
`Cloudflare - Exhibit 1084, page 1
`
`

`

`US 7,095,715 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`6,320,848 B1 * 1 1/2001 Edwards et al. ............ 370,255
`6,418,125 B1* 7/2002 Oran ..........
`370,266
`6,452,915 B1
`9/2002 Jorgensen ...
`... 370.38
`6,542,466 B1 * 4/2003 Pashtan et al. ...
`370,235
`6,560,233 B1* 5/2003 Hatanaka et al. ........... 370/401
`6,590,885 B1
`7/2003 Jorgensen ......
`370,338
`6,594,246 B1
`7/2003 Jorgensen ...
`370,338
`6,628,617 B1 * 9/2003 Karol et al.
`... 370.237
`6,628,629 B1
`9/2003 Jorgensen .........
`... 370,322
`6,636,481 B1 * 10/2003 Yamaguchi et al. ........ 370/230
`6,640.248 B1
`10/2003 Jorgensen ......
`709,226
`6,680,922 B1
`1/2004 Jorgensen ...
`... 370,328
`6,697.368 B1* 2/2004 Chang et al.
`370,395.1
`6,711,165 B1* 3/2004 Tzeng ........
`... 370,392
`6,714,517 B1 * 3/2004 Fawaz et al. ...
`... 370,236
`6,772,223 B1
`8, 2004 Corlet al. .....
`... 709,238
`6,801,530 B1 * 10/2004 Brandt et al. ........ ... 370,392
`6,804240 B1 * 10/2004 Shirakawa et al. ......... 370,392
`
`6.826,147 B1 * 1 1/2004 Nandy et al. ............... 370,229
`6,831,893 B1* 12/2004 Ben Nun et al. ........... 370/235
`6,865,602 B1
`3/2005 Nijemcevic et al. ........ 709,223
`6,892.233 B1
`5/2005 Christian et al. ........... 709,223
`2002/0085560 A1* 7/2002 Cathey et al. ..
`370,392
`2002/00998.54 Al
`7/2002 Jorgensen ................... TO9,249
`2002/0107908 A1* 8, 2002 Dharanikota ................ TO9,203
`2002/0152303 A1 10/2002 Dispensa .
`709,224
`2002/019 1622 A1* 12/2002 Zdan .......................... 370/401
`2002/0194369 A1* 12/2002 Rawlins et al. ............. TO9,238
`2003,0005144 A1
`1/2003 Engel et al. ....
`709,235
`2003/0014627 A1
`1/2003 Krishna et al. ............. T13,153
`2003/0028624 A1
`2/2003 Hasan et al. ................ TO9.220
`2003/0067903 A1
`4/2003 Jorgensen ...
`370,338
`2003/0076855 A1
`4/2003 Chamberlain ............... 370,447
`2004/0022,237 A1
`2/2004 Elliott et al.
`370,356
`2004/0088.646 A1
`5/2004 Yeager et al. ...
`71.5/5OO
`2004/0098.447 A1
`5, 2004 Verbeke et al. .
`TO9,201
`
`
`
`* cited by examiner
`
`Cloudflare - Exhibit 1084, page 2
`
`

`

`U.S. Patent
`
`
`
`Aug. 22, 2006
`
`US 7,095,715 B2
`
`
`
`Cloudflare - Exhibit 1084, page 3
`
`

`

`US 7,095,715 B2
`
`1.
`SYSTEMAND METHOD FOR PROCESSING
`NETWORK PACKET FLOWS
`
`TECHNICAL FIELD OF THE INVENTION
`
`This invention relates generally to computer networks,
`and more specifically relates to a system and method for
`processing packet flows through a network.
`
`BACKGROUND OF THE INVENTION
`
`10
`
`2
`revenue source or market differentiator for the ISP. Thus,
`ISPs who attempt to lead the market by developing and
`offering new services face considerable risk if a large
`investment in a new service fails to result in greater revenue
`or customer satisfaction.
`
`SUMMARY OF THE INVENTION
`
`Therefore a need has arisen for a system and method
`which processes network packet flows in a best effort
`network with scalable and flexible hardware and software
`architecture.
`A further need has arisen for a system and method which
`Supports rapid deployment of services in a best effort net
`work with reduced expense and complexity.
`In accordance with the present invention, a system and
`method is provided that substantially eliminates or reduces
`disadvantages and problems associated with previously
`developed systems and methods for processing network
`packet flows in a best effort network. A network node
`provides a data path that performs repetitive operations at
`high speeds to classify, process and shape packets according
`to a slower speed control path that performs complex logic
`operations associated with predetermined services. Process
`ing blades interfaced with the data flow receives predeter
`mined packets based on classification and modifies the
`packets for transmission across the network.
`More specifically, packets received by the network node
`are classified according to a set of classification rules. The
`classification rules sort the packets into packet groups and
`each packet group is sent to a predetermined input port of a
`modify\process engine. The modify\process engine per
`forms multithreaded processing with a function associated
`with each input port. This highly parallel implementation in
`which internal state is not shared among functions allows the
`network node Switch to perform repetitive operations at high
`speeds for processing packet flows. The modify\process
`engine sends packets to a shaper engine which controls the
`transmission of the packets with queuing disciplines for
`transmission to the network. An accountant engine tracks
`statistics in the classify, modify\process and shaper engines
`for control and billing purposes. A controller programs the
`classify, modify\process, shaper and accountant engines to
`achieve a desired packet prioritization and flow. For
`instance, the controller installs or modifies rules in the
`classify engine, installs or modifies functions in the
`modify\process engine, establishes queues in the shaper
`engine and determines the variables or tracking in the
`accountant engine.
`In one embodiment, packet flows are controlled by packet
`processing behaviors that are specified with a dataflow
`program and reflective programming. The dataflow program
`specifies interconnected objects for the data to flow through.
`For instance, one packet processing behavior of a service in
`a dataflow representation creates a queue for a new TCP
`connection. The dataflow program detects SYN packets of
`new TCP connections and, when a new connection is
`detected, a new dataflow program is constructed using
`reflective programming that contains elements to detect the
`host/port quadruple of the new flow. Thus, bandwidth may
`be dynamically assigned for new connections.
`The modify\process engine includes an interface with a
`blade bus adapted to accept processor blades programmed to
`modify packets. Each processor blade performs a function
`on packets received and then forwards the modified packet
`to the shaper engine for transmission on the network. Each
`processing blade is designed for a specific function to enable
`
`The Internet has grown in popularity largely because it
`provides a simple and uniform underlying packet protocol
`for exchanging data that in turn enables more complex
`applications to occur. The relative simplicity of the Internet
`has lead to an explosion of growth in data traffic for business
`and personal usage. An industry of Internet service providers
`(ISP) has developed to provide access to the Internet for
`businesses and homes. These ISPs have invested heavily in
`infrastructure with the general goal of improving data trans
`fer rates for customer end points. Thus, ISPs have evolved
`from low speed analog modem Internet connections pro
`vided through dial-up service across the plain old telephone
`system (POTS) into broadband access provided by cable
`modems, DSL, and ADSL that are capable of transferring
`data at Substantially higher rates.
`Internet access offered by ISPs has become a commodity
`service with different ISPs typically offering similar access
`speeds and competing on price points. However, as ISPs
`gain Subscribers to their high-speed broadband access Ser
`vices, the reliability of ISP service, i.e. the ability to transfer
`data at predictable rates, available at end points has suffered
`and indeed is often less than the capacity of broadband
`customer modems. For instance, Surges in Subscriber use
`tends to create bottlenecks that slow data transfer rates and
`use ISP infrastructure inefficiently. This difficulty relates
`generally to the Internets architecture which transfers data
`on a “best effort' basis in which TCP/IP packets are gener
`ally transferred between routing points without prioritiza
`tion. This “best effort' architecture is attractive for its
`simplicity, but creates difficulties for ISPs who desire to
`distinguish themselves based on the services offered com
`pared to other ISPs.
`One manner in which ISPs are working to distinguish
`themselves is to offer subscribers different types of services.
`In general terms, a service is the processing of certain data
`on the network in a predetermined manner with associated
`billing. For instance, one service typically offered by tele
`phone network providers is call waiting, in which customers
`receive notice of an incoming telephone call when the
`customer is on the phone for a monthly fee. A typical service
`offered by ISPs is e-mail service, although e-mail service is
`not typically billed. Typically e-mail service is provided by
`routing e-mails to an ISP server that stores the e-mails until
`the subscriber retrieves them.
`More complex services are generally difficult to imple
`ment on a best effort network architecture, such as the
`Internet, since best effort networks are generally designed to
`route packets to destinations on a first come first served
`basis. An ISP that seeks to provide a new service to its
`Subscribers has to design and install hardware and software
`that generally require a considerable capital investment and
`time to develop. Even after investing considerable time and
`capital in the development of a new service, subscriber
`needs and technology often advance more rapidly than a
`service deployment cycle, frequently leaving newly
`deployed services out of date before the services become a
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Cloudflare - Exhibit 1084, page 4
`
`

`

`3
`complex operations with minimal delay. The processing
`blade architecture provides a scalable broadband network
`node that is easily adapted to Support new services with
`reduced complexity and increased speed. For instance, a
`broadband network node programmed to classify packets for
`supporting a voice over internet protocol (VOIP) is adapted
`to Support a conference call service by interfacing a pro
`cessing blade with the processor blade bus so that packets
`classified as conference call VOIP packets are mixed as
`audio streams with the processing blade.
`The present invention provides a number of important
`technical advantages. One important technical advantage is
`the inexpensive and rapid deployment of new and modified
`services in a best effort network. The classification, modi
`fication and shaping of packets is performed at line speed by
`software residing on function specific hardware. Flexibility
`is provided to add and modify services through software
`programming and the addition of appropriate hardware
`processing blades. Thus, the broadband network node pro
`vides a flexible and scalable solution for routing packets in
`a best effort network according to the packets associated
`applications.
`Another important technical advantage of the present
`invention is that bandwidth is dynamically allocated for
`packet flows using reflective programming techniques in the
`context of dataflow programs. This allows the network to
`adapt as the type of data across the network changes over
`time, resulting in improved efficiency and flexibility in
`bandwidth usage.
`Another important technical advantage of the present
`invention is that it provides separate mechanisms for a data
`path and a control path in routing packets. The data path is
`highly parallel, processing each packet flow independently
`to perform repetitive operations at high speeds for routing
`packets including complex modifications of the packets. The
`control path looks across data flows to implement the data
`path with the parallel processing so that complex routing
`operations are performed in an efficient manner at line
`speeds.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`A more complete understanding of the present invention
`and advantages thereof may be acquired by referring to the
`following description taken in conjunction with the accom
`45
`panying drawings, in which like reference numbers indicate
`like features, and wherein:
`FIG. 1 depicts a block diagram of the logical architecture
`of a broadband network node; and
`FIG. 2 depicts a block diagram of a hardware architecture
`for modifying packets with a processing blade architecture.
`
`50
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`Preferred embodiments of the present invention are illus
`trated in the figures, like numerals being used to refer to like
`and corresponding parts of the various drawings.
`Building a service for a network presents a Substantial
`task which is often time consuming and expensive. For
`instance, years often pass from the development and
`approval of a business case through the design and provi
`Sioning of a service on a network. The conventional devel
`opment and provisioning of a service on a best effort
`network, such as the Internet or intranets that use TCPWIP, are
`difficult to design and deploy, typically requiring design
`from scratch and custom equipment. Even once a service is
`
`55
`
`60
`
`65
`
`US 7,095,715 B2
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`4
`deployed on a best effort network, modification of the
`service over time presents a continuing problem.
`One solution that eases the development and deployment
`of services on a best effort network is to deploy broadband
`network nodes on the edges of the network, Such as the
`advanced traffic processor disclosed in U.S. patent applica
`tion Ser. No. 09/875,639, filed Jun. 6, 2001, entitled “A
`System and Method for Allocating Bandwidth Across a
`Network, incorporated herein by reference. A broadband
`network node is a hardware device that processes network
`packet flows at line speeds at the ingress and egress points
`of an intranet. For instance, services are provisioned to the
`intranet by programming the broad band network nodes to
`classify, modify and shape packets to accomplish the desired
`service.
`Referring now to FIG. 1, a block diagram depicts the
`logical architecture of a broadband network node 10 for
`provisioning and operating a service on a best effort net
`work. Generally, a service is a packet processing behavior or
`behaviors and associated billing rules which provides value
`to subscribers to the service. Broadband network node 10
`provides packet processing behaviors through software that
`classifies, processes and shapes packet traffic flowing
`through broadband network node 10. Broadband network
`node 10 allows flexible and scalable deployment of services
`through software additions and modifications and, in some
`cases, the addition of hardware modules, that operate the
`service with separate data path and control path mecha
`nisms. A highly parallel data path processes packet flows
`independently to perform repetitive operations at high
`speeds which reduce the impact of the service on network
`data transfer rates, while the control path performs more
`complex logic at lower speeds to allow control of one or
`more services by looking across data flows.
`The data path mechanism is the flow of packets 12
`through a classify engine 14, a modify\process engine 16
`and a shaper engine 18. The data path mechanism uses a
`dataflow program which specifies a set of interconnected
`objects through which data flows and is processed. An
`accountant engine 20 tracks statistics in classify engine 14,
`modify\process engine 16 and shaper engine 18 to evaluate
`the data path usage and for billing purposes. The control path
`mechanism is established by controller 22 which interfaces
`with classify engine 14, modify\process engine 16, shaper
`engine 18 and accountant engine 20. Controller 22 programs
`the dataflow programs of each of the engines. For instance,
`installing or modifying rules in classify engine 14, installing
`or modifying functions in modify\process engine 16, estab
`lishing queues in shaper engine 18 and determining the
`variables to track in accountant engine 20. Controller 22 also
`controls the routing of the packets between the engines.
`Classify engine 14 accepts inbound packets 12 and
`applies a set of classification rules in a well-defined order
`determined by controller 22 so that the first matching rule
`defines the packet group. Classification into packet groups is
`based on any part of the packet, including the datalink,
`network, and transport header fields as well as packet
`content or payload. For example, classify engine 14 groups
`packets based on VCI\VPI\CLP (ATM fields), IP source or
`destination addresses, port numbers, protocol type such as
`TCP or UDP, application protocol such as DNS, DHCP.
`HTTP, or the MIME content type such as text\html.
`In one embodiment, classify engine 14 classifies groups
`of packets by flow statistics maintained by classify engine
`14 or accountant engine 20, Such as flow lifetime, average
`bandwidth, and peak bandwidth. For instance, classify
`engine 14 finds the flow to which a packet belongs, updates
`
`Cloudflare - Exhibit 1084, page 5
`
`

`

`US 7,095,715 B2
`
`5
`
`10
`
`15
`
`5
`the flow statistics and then uses the flow statistics to classify
`the packet. In one application of this embodiment, a TCP
`flow greater than a predetermined age. Such as 30 seconds
`old, is sent to a specific port.
`In another embodiment, classify engine 14 creates a
`packet flow when a packet of a specific type of packet is
`detected, thus allowing flexible allocation of bandwidth. The
`network processor runs a program, Such as a rules-based or
`a dataflow program, that is able to use reflective program
`ming techniques to create a new reflective program able to
`classify desired packets. For instance, a dataflow program
`classifies packets according to the packets control protocol,
`such as DHCP. DNS, FTP, SIP and other control protocols.
`The control protocol includes data that provides a basis for
`defining a new packet processing behavior to define a
`service, such port numbers, host names, user names, and IP
`addresses. The dataflow program extracts relevant data from
`the control protocol and uses reflective programming to
`create a new dataflow program that contains those param
`eters to define a service that classifies packets with the newly
`created dataflow program running on the network node.
`One example of a service supported with reflective pro
`gramming of programs includes a packet processing behav
`ior of creating a new queue when a new TCP connection is
`established. Controller 22 programs a dataflow program
`25
`associated with classify engine 14 to watch for TCP SYN
`requests associated with new TCP connections. When a
`SYN request is detected, the request is passed on to the
`appropriate port of modify/process engine 16 for transmis
`sion and also used to construct a new dataflow program by
`applying reflective programming techniques. Parameters of
`the SYN packet, such as IP source and destination address
`and port known as the host/port quadruple, are used to
`construct a new dataflow program. The new dataflow pro
`gram creates a flow based on the host and port quadruples of
`the new TCP connection. The new TCP connection's data
`flow program is added to classify engine 14 with an appro
`priate function added to modify/process engine 16. The
`reflective programming is accomplished by controller 22,
`which identifies a queue for the new TCP connection.
`Other examples of services provided by reflective pro
`gramming include services for classifying, modifying and
`shaping packets with FTP, DHCP and DNS control protocol
`data. For instance, for services related to FTP downloads,
`classify engine 14 monitors the FTP control channel until the
`parameters for the data connection, and then uses those
`parameters to dynamically construct a new dataflow pro
`gram that gives FTP connections on the detected host port
`quadruple an appropriate class of service. As another
`example, the classify engine monitors DHCP requests and
`responses to extract the MAC-IP mapping for constructing
`rules based on IP addresses. This allows more efficient
`services where DHCP is used to dynamically assign IP
`addresses to computers of the network since 32 bit IP
`address are shorter than 48 bit MAC addresses. Similarly,
`the classify engine may monitor DNS requests and
`responses to allow creation through reflective programming
`of a new dataflow program that processes traffic according
`to IP address information. This advantageously allows
`dynamic creation of rules for a dataflow program based on
`DNS mappings, which is otherwise difficult to accomplish
`since the mapping of host name to IP address varies across
`the Internet.
`Further, the reflective programming technique is able to
`provide services by creating dataflow programs with reflec
`tive programming that are in turn able to create new dataflow
`programs through the application of additional reflective
`
`35
`
`6
`programming. One example of multi-layered reflective pro
`gramming is the monitoring of peer-to-peer downloads
`using a directory lookup service. For instance, Napster
`allows users to lookup at a central directory the IP addresses
`and port numbers for computers storing a specified song so
`that the user can connect to the computer and download the
`song. When a Napster request is detected, the Napster
`connection parameters are extracted and written into a first
`reflective program so that services, such as a blocking
`service, are provided by the reflective program based on
`classification using the host/port information. This first
`reflective program can be created with an ability to program
`a second reflective program. For instance, when the reflec
`tive program is created based on a Napster connection, the
`first reflective program looks for directory look-ups of
`specific Songs and creates a second reflective program to
`block connection requests for certain specific predetermined
`Songs. Thus, the second reflective program controls specific
`traffic associated with the first reflective program to allow
`more precise control of network traffic, such as identification
`of particular songs associated with a more general Napster
`connection.
`Once classify engine 14 sorts packets into packet groups,
`each packet groups is sent to a specific input port of
`modify\process engine 16. Each input port of
`modify\process engine 16 has an associated function 24 that
`operates on the packets received at the associated ports.
`Modify\process engine 16 is a highly scalable, multi
`threaded engine that processes packets according to the set
`of functions associated with the input ports So that internal
`state is not shared among functions, thus allowing a highly
`parallel implementation. Modify\process engine 16 is able to
`execute arbitrary programs on any packet to perform one of
`a variety of functions ranging from a non-operation in which
`the packet is passed unchanged to encapsulation or encryp
`tion of the packets.
`Modify\process engine 16 sends packets to shaper engine
`18 which controls the transmission of the packets to the
`network. Shaper engine 18 uses a variety of queuing disci
`plines to route the processed packets. For instance, shaper
`engine 18 can discard packets that are associated with an
`unauthorized use, can perform weighted fair queuing (WFO)
`and leaky bucket queuing. Queuing of classified and pro
`cessed packets by shaper engine 18 allows a broadband
`network node 10 to control packet flows across the network
`to achieve desired services.
`By programming controller 22 to process predetermined
`packets, broadband network node 10 provides a flexible way
`to accomplish complex control with Software programming.
`Although conventional routers are able to perform routing
`operations based on header fields that are at predefined
`offsets and fixed size. Such routing is generally unable to
`perform complex classify and modify operations for
`enabling services. For instance, line speed operations on
`content of packets and high level state operations for mul
`tipacket flows or protocol interactions are not practical with
`conventional routers. To achieve the line speed complex
`processing of packets outlined in the logical architecture
`depicted by FIG. 1, one embodiment of the present invention
`redirects packets requiring complex processing to function
`specific processing blades.
`Referring now to FIG. 2, a block diagram depicts a
`hardware architecture for a broadband network node 10
`which is programmable to perform the logical functions
`depicted by FIG. 1. Packets 12 flow to physical interface 26
`and classify engine 14, which is a fast pattern processor from
`
`30
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Cloudflare - Exhibit 1084, page 6
`
`

`

`7
`AGERE that is able to classify the packets. Once the packets
`are classified, they pass to a modify\process engine 16 which
`performs the set of functions based on the classification of
`classify engine 14. Modify\process engine 16 is a hardware
`interface 28 that interfaces with a processor blade bus 30 and
`one or more processor blades 32. Processor blade interface
`28 is an FPGA or ASIC that passes packets received from
`classify engine 14 to either processor blade bus 30 or shaper
`engine 18, which is a routing Switch processor from
`AGERE. Processor blade interface 28 performs functions
`based on classification or forwards packets to processor
`blades 32 based on classifications and the complexity of the
`function. For instance, to enable voice over internet proto
`col, conference calls, a processing blade 32 with an audio
`mixer accepts packets forwarded from processor blade inter
`face 28 through processor blade bus 30 and performs audio
`mixing functions for the conference call. The packets are
`then forwarded back to processor blade interface 28 and on
`to shaper engine 18 for transmission through physical inter
`face 26 to the network.
`One advantage of the processor blade architecture is that
`the broadband network node 10 is extremely scalable and
`able to add services by inserting a Supporting hardware
`module. Complex operations on packets associated with
`processor blades do not slow the transfer rate of other
`packets since the processor blade architecture horizontally
`scales to one processing blade for each flow in the network.
`Some examples of services of varying degrees of complexity
`that may be performed with network processors or with
`processor blades include:
`
`25
`
`30
`
`US 7,095,715 B2
`
`10
`
`15
`
`8
`services are easily added with modular hardware. Some
`examples of general purpose or specialized engines Sup
`ported by processing blades 32 include encryption, audio
`mixing, water marking, transcoding, filtering and searching.
`Although the present invention has been described in
`detail, it should be understood that various changes, Substi
`tutions and alterations can be made hereto without departing
`from the spirit and scope of the invention as defined by the
`appending claims.
`What is claimed is:
`1. Abroadband Internet node comprising:
`a classify engine interfaced with the Internet, the classify
`engine operable to accept packets from the Internet and
`determine classification information for each packet,
`wherein the classify engine is operable to detect a SYN
`packet associated with a new TCP connection;
`a modify/process engine interfaced with the classify
`engine, the modify/process engine having plural ports,
`each port having an associated function; and
`a controller interfaced with the classify engine and the
`modify/process engine, the controller programming the
`classify engine to route each packet to a predetermined
`port of the modify/process engine based on the classi
`fication information of the packet;
`wherein the controller programs the classify engine with
`a dataflow program that determines classification infor
`mation for the packets and detects the host/port qua
`druple of the new TCP connection and creates a new
`queue for the new TCP connection.
`2. The node of claim 1 wherein the classify engine is
`further operable to detect packets associated with an FTP
`data stream and the controller is further operable to program
`
`Complexity
`(processing
`
`Operations
`
`power)
`
`Applications
`
`Classify
`
`Modify/Process
`
`Account
`
`Low
`
`MAC Addr (scri dest)
`Routing
`UO Addr (scri dest)
`Switching
`ATM VCIVPI, CLP
`Firewall (based on ports)
`Type of Service (TOS) field
`VLAN mapping
`Transport (i.e., UDP, TCP,
`Tiered Services
`Content Broker (based on IP addr) RTP)
`FAP
`Port number (scridest)
`Load Balancing
`
`Moderate
`
`Application to QoS mapping
`Admission Control
`Content Broker (based on URL)
`NetEX (bandwidth on demand)
`
`High
`
`Content Broker (w.fredirection)
`Digital Rights Management
`Virus Detection
`Carnivore
`
`Application (i.e., HTTP,
`Napster, Realmedia)
`based on port number
`URL Cookie
`Data type (i.e. MIME encoding)
`Content checking (i.e., names
`in XML, email headers)
`CDN URL redirection
`Content Filtering
`Virus scanning
`Digital Rights Classification
`
`Change MAC addr
`Add/Modify MPLS field
`(layer 2.5)
`Change IP address
`Change VCIVPI
`Change Diffserv priority field
`Change TOS field
`Change Time to Live (TTL) field
`Layer 2 Protocol Switching
`(i.e. ATM to Ethernet)
`Add/Delete/Modify IP or
`protocol Options field
`Re-compute and apply padding
`Re-compute and apply Header
`and for Protocol Checksum
`Protocol Scraping (i.e., DHCP)
`Encapsulation
`IPSec Encryption
`Digital Rights Watermarking
`
`Number of bytes tr

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