throbber
United States Patent [19J
`Stone
`
`I lllll 1111111111111111 11111111111111111111111111111111111111111111111111111
`US005598410A
`[lll Patent Number:
`[45] Date of Patent:
`
`5,598,410
`*Jan.28, 1997
`
`[54] METHOD AND APPARATUS FOR
`ACCELERATED PACKET PROCESSING
`
`[75]
`
`Inventor: Geoffrey C. Stone, Minneapolis, Minn.
`
`[73] Assignee: Storage Technology Corporation,
`Louisville, Colo.
`
`[ *] Notice:
`
`The term of this patent shall not extend
`beyond the expiration date of Pat. No.
`5,546,390.
`'
`
`[21] Appl. No.: 366,225
`
`[22] Filed:
`
`Dec. 29, 1994
`
`Int. Cl.6
`............................. H04L 12/56; G06F 13/00
`[51]
`[52] U.S. CI . ........................... 370/469; 395/800; 395/670
`[58] Field of Search .................................. 370/58.1, 58.2,
`370/58.3, 60, 60.1, 61, 79, 82, 83, 85.13,
`85.14, 94.1, 94.2, 94.3, 99; 395/200, 325,
`375,650,800
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,134,610
`5,200,953
`5,249,292
`5,278,834
`
`7 /1992 Shand et al. .............................. 370/60
`4/1993 Spatafore et al .................... 370/85.12
`9/1993 Chiappa .................................. 395/650
`1/1994 Mazzola ................................. 370/94.1
`
`5,280,476
`5,307,343
`5,414,702
`5,414,707
`5,430,709
`
`1/1994 Kojima et al .......................... 370/60.1
`4/1994 Bostica et al ............................. 370/60
`5/1995 Kudoh ....................................... 370/60
`5/1995 Johnston et al. .......................... 370n9
`7/1995 Galloway .................................. 370/13
`
`Primary Examiner-Alpus H. Hsu
`Attorney, Agent, or Firm-Timothy R. Schulte
`
`[57]
`
`ABSTRACT
`
`A method and apparatus are provided to transfer protocol
`data units within a communication network. This transfer(cid:173)
`ring is accomplished with a protocol data unit processor that
`is operated in the communication network. The processor
`includes a preprocessor which establishes subsequent pro(cid:173)
`cessing requirements of a particular protocol data unit
`received from the communication network to generate at
`least one associated directive for the particular protocol data
`unit. Subsequently, a synchronizing mechanism synchro(cid:173)
`nizes the particular protocol data unit witb the at least one
`associated directive to generate a synchronized protocol data
`unit. A restructuring device restructures the synchronized
`protocol data unit in accordance with the at least one
`associated directive for the protocol data unit to generate a
`restructured protocol data unit. In addition, a method of
`operating the protocol data unit processor in a heterogeneous
`communication network is provided.
`
`31 Claims, 7 Drawing Sheets
`
`RESTRUCTURE
`PROTOCOL DATA
`UNIT
`
`310
`
`PROVIDE
`PROTOCOL DATA
`UNIT TO OTHER
`COMPONENTS
`
`312
`
`ZSCALER Ex. 1005 p.1
`
`

`

`J;,181' .. ·--' ~ 158
`
`•••
`
`- - · - - I
`
`,-150
`
`162
`
`FLOW
`BLOCK
`
`L1.~1·
`
`d •
`00. •
`
`~ a. ~ a
`
`~
`
`N
`JXi
`"""" ~
`~
`-..J
`
`rJJ. =(cid:173)tD
`
`~
`i-
`s,
`
`-..J
`
`Ul
`~ Ul
`"' QC
`~ =
`
`.&;.
`
`~
`
`ZSCALER Ex. 1005 p.2
`
`164
`
`168
`
`=··· 1,~~~~A~~ t ,-:cg~
`rnJ ... I I~~~~~~~ I--
`
`-166
`
`170
`FLOW
`BLOCK
`
`CTD •••
`
`174
`
`OIJ ..•
`
`-
`
`-
`
`- _I
`
`172
`SOFTWARE CONTROLLED
`GENERAL PURPOSE PROCESSOR
`
`rnJ .•. I
`
`J
`
`182
`
`I_ -
`
`-
`
`-
`
`FIG. 1
`-PRIOR ART·
`
`

`

`U.S. Patent
`
`Jan. 28, 1997
`
`Sheet 2 of 7
`
`5,598,410
`
`-.;I'
`
`•
`
`r------------,
`.
`l o
`I
`I~
`I
`

`

`

`
`0
`
`0 .,... \..
`
`LO
`0
`,-
`
`t'IJ
`C\I
`,-
`
`C\J .
`(!J
`u..
`
`a.
`a.
`I
`
`C\l
`0
`
`r - - - - -·
`,...
`~ ~
`,...
`I C\I
`,...
`,~
`I
`,...
`,'a
`
`I
`L _ _ _
`
`-
`
`-
`
`I
`
`- - - - - - ,
`

`.
`

`
`-
`
`-
`
`-
`
`_J
`
`ZSCALER Ex. 1005 p.3
`
`

`

`U.S. Patent
`
`Jan. 28, 1997
`
`Sheet 3 of 7
`
`5,598,410
`
`..,
`
`r-(cid:173)
`
`,~ :
`
`I~
`I~
`,,.,..
`
`0
`T""
`
`T " "~
`
`0
`0
`T""
`
`L. -
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`_J
`
`~
`
`r - - - - - - -
`
`co
`0
`T""
`
`.
`CJ
`LL
`
`CL
`CL
`:c
`
`C\I
`
`r
`0 ..-
`~
`I ..-
`1 ~
`I~
`I
`
`-
`
`-
`
`-
`
`-
`
`-
`
`_J
`
`..,
`
`co ..(cid:173)
`..-
`

`

`- - -
`

`- - - - _,
`
`ZSCALER Ex. 1005 p.4
`
`

`

`U.S. Patent
`
`Jan. 28, 1997
`
`Sheet 4 of 7
`
`5,598,410
`
`r - - -
`1~
`:
`,'-§
`

`

`

`
`0 ..-
`
`..-~
`
`L
`
`-,
`
`I
`I
`_J
`
`0
`
`0 ..-\..
`
`r - - - - - - -
`
`co
`0 ..-
`
`~ .
`CJ
`LL
`
`a..
`a..
`::c
`
`-
`
`-
`
`-
`
`-
`
`-
`
`_J
`
`-,
`

`

`
`C\I
`
`I C\I
`..-
`I
`....
`
`r
`0 ..-
`~
`,~
`1 '--a
`
`I
`L
`
`-
`
`-
`
`ZSCALER Ex. 1005 p.5
`
`

`

`-
`
`-
`
`-
`~ M
`- u
`
`. rrE X
`
`11 ,
`
`/'
`
`MUX BY 4
`
`...
`-
`
`I
`
`I
`
`I
`
`l
`
`f
`
`i- .... I-
`
`•
`
`-
`- I-
`M
`... ~ u
`rr= X
`... , l
`i...--210
`
`r+-
`
`CALL
`RETURN
`STACK
`
`LJ
`
`,---105
`
`2 12
`
`Cj
`•
`00
`•
`~
`
`~ a
`
`20 V
`...
`
`-
`
`DUAL
`HEADER
`RAM
`
`I
`
`f ,..-226
`
`..
`I
`RAM
`ADDRESS
`SWITCH'
`l
`HEADER
`LOAD
`CONTROL
`
`l
`
`(230
`
`..
`
`... i-.
`
`/236
`
`COMPARATOR
`
`~
`-~~ ....
`
`N
`
`I,=
`I,=
`.....:t
`
`rJ'.J =(cid:173)n:i
`
`~
`(I)
`s,
`.....:t
`
`ti)
`,..
`ti)
`\C
`00
`,..
`~
`
`~ =
`
`ZSCALER Ex. 1005 p.6
`
`(202
`
`( 2 0
`
`1 r
`
`INSTRUCTION
`MEMORY
`
`--
`
`~
`
`--
`-
`-
`~ -
`
`~
`
`;=:i=.
`
`L
`A
`T
`C
`H
`
`r (214
`
`'f,,. -234
`~
`M
`u _.
`
`-..
`
`X
`
`..
`
`ALU
`
`-
`.
`
`:!!!I
`L
`A
`
`..... T
`.......
`
`C
`H
`
`t.-,,--216
`
`~
`
`,__
`
`•
`
`REGISTER
`~
`RAM
`
`.... _
`'
`I'-..
`
`REGISTER
`~
`/STACK
`RAM
`
`20
`
`208
`
`FIG. 5
`
`

`

`U.S. Patent
`
`Jan.28, 1997
`
`Sheet 6 of 7
`
`5,598,410
`
`0
`0
`C\I
`
`0
`,.-
`
`0
`
`0
`C\I
`C\I
`
`v
`C\I
`N
`
`,--
`
`,.-
`
`,.-
`
`• • •
`•
`
`,-
`
`,....
`
`C\I
`C\J
`C\I
`
`c.o
`•
`(!J -u..
`
`ZSCALER Ex. 1005 p.7
`
`

`

`U.S. Patent
`
`Jan. 28, 1997
`
`Sheet 7 of 7
`
`5,598,410
`
`---300
`
`--£....-
`
`START
`
`302
`
`RECEIVE TWO
`DIFFERENT TYPES
`OF PROTOCOL
`DATA UNITS
`
`304
`
`306
`
`GENERATE
`ASSOCIATED
`DIRECTIVE
`
`SYNCHRONIZE
`EACH PROTOCOL
`DATA UNIT WITH
`ASSOCIATED
`DIRECTIVE
`
`RESTRUCTURE
`PROTOCOL DATA
`UNIT
`
`310
`
`PROVIDE
`PROTOCOL DATA
`UNIT TO OTHER
`COMPONENTS
`
`312
`
`FIG. 7
`
`ZSCALER Ex. 1005 p.8
`
`

`

`5,598,410
`
`1
`METHOD AND APPARATUS FOR
`ACCELERATED PACKET PROCESSING
`
`RELATED INVENTIONS
`
`The present invention is related to:
`Co-pending U.S. patent application Ser. No. 08/366,221,
`filed on Dec. 23, 1994, which is entitled "Method And
`Apparatus For Accelerated Packet Forwarding" by Mark
`Bakke et al.,
`Co-pending U.S. patent application Ser. No. 08/366,221,
`filed on Dec. 23, 1994, which is entitled "Method And
`Apparatus For Radix Decision Packet Processing" by Geof
`Stone,
`Co-pending U.S. patent application Ser. No. 08/366,221,
`filed on Dec. 23, 1994, which is entitled "Method And
`Apparatus For Virtual Switching" by Ken Hardwick et al.;
`and which were all filed concurrently herewith and
`assigned to the assignee of the present invention.
`
`FIELD OF THE INVENTION
`
`2
`must go through a customs operation in each country. If the
`national postal delivery system is being used to deliver the
`piece of mail then it must also be transferred from one
`national postal delivery system to another. In a private postal
`5 delivery system however, this transfer step would not be
`necessary. The pieces of mail may also be monitored or
`filtered for such things as mail fraud violation or shipment
`of hazardous materials.
`Data packets are manipulated in a data communication
`10 network in a manner similar to that by which pieces of mail
`are delivered in a postal delivery system. Data packets, for
`example, are generated by many different types of devices
`and are placed onto a communication network. Typically, the
`data packets are concentrated into a forwarding device, such
`15 as a local bridge or router, and are then directed by desti(cid:173)
`nation over one or more media types (e.g., fiber optic) which
`are connected to destination devices that could be other
`larger or smaller bridges or routers. These destination
`devices then deliver the data packet to its terminal end point
`20 (i.e., the end user). Along the way the data communication
`network may perform filtering and monitoring functions
`with respect to the data packets.
`Just like postal delivery systems have experienced ever
`increasing volumes of mail which must be delivered, the
`volume of protocol data units being transferred across
`computer networks continues to increase as experience is
`being gained with this new form of communication delivery
`system and as more and more applications, with more and
`more expansive means are being developed. In addition,
`30 quickly changing technology has made the underlying data
`transmission resources for computer communication net(cid:173)
`works relatively inexpensive. Fiber optics, for example,
`offer data transfer rates in the gigabyte per second range.
`The capability or through put of a forwarding device and
`a computer communication network can be measured either
`by the number of data packets per second or by the number
`of bits per second which pass through the forwarding device.
`The former measure is important because in typical network
`traffic, the bulk of protocol data units or data packets are
`small and the critical parameter is how many data packets a
`forwarding device can handle. If network traffic is weighted
`by packet size, however, the bulk of the data is carried in
`large packets. In large bulk data transfers, the second mea-
`sure of how many bits are being transferred is more impor(cid:173)
`tant regardless of the number of data packets that are
`handled. This tension between packet transfer rate versus bit
`transfer rate is a continuing dichotomy in through put
`measurements of forwarding devices. Regardless of which
`through put measure is used, there is a need for through put
`rates that are substantially higher than the through put rates
`currently available in forwarding devices.
`The existing types of forwarding devices which offer the
`greatest potential to meet the increasing demand on through
`put rates are packet switches. Several classes of packet
`switches exist. Each class differs substantially from the other
`class of devices, but all may be commonly referred to as
`packet switches or forwarding devices.
`A first class of packet switches is that commonly used in
`digital telephone exchanges. By analogy, these switches can
`perform the functions only of a mail carrier picking up and
`delivering mail along a single route. These switches are
`intended only to transfer packets among the devices in a
`single station, such as a telephone exchange. The format of
`the packet in these systems is chosen to make the hardware
`in the switch as simple as possible; and this usually means
`that the packets include fields designed for direct use by the
`
`The present invention relates generally to data commu(cid:173)
`nication networks. More particularly, the present invention
`relates to protocol data unit forwarding systems that direct 25
`the flow of protocol data units in the data communication
`networks.
`
`BACKGROUND OF THE INVENTION
`
`35
`
`In a data communication network, a forwarding device
`(e.g., a data packet switch) directs protocol data units (e.g.,
`data packets) from one network node to another. These data
`packets may include voice, video, or data information as
`well as any combination thereof.
`To better understand how forwarding devices work within
`a data communication network, an analogy may be helpful.
`In many respects, data communication networks are similar
`to postal delivery systems, with pieces of mail, such as
`letters or packages, being comparable to the data packets 40
`which are transferred within a data communication network.
`In a postal delivery system, the pieces of mail may be input
`into the postal delivery system in a variety of ways. Once
`within the postal delivery system, all of the pieces of mail
`are collected and transported to nearby processing facilities 45
`where the pieces of mail are sorted for further processing.
`Although each piece of mail will have a unique delivery
`address, most of the pieces of mail are automatically sorted
`by a shorter zip code or some other type of routing code.
`Letters without zip codes must be sorted and processed by 50
`hand. Some postal delivery systems also have special forms
`of encoded delivery addresses, such as Post Office box
`numbers at a Post Office, which are not recognizable by
`other postal delivery systems such as Federal Express or
`United Parcel Service. Regardless of which particular postal 55
`delivery system the piece of mail is deposited into, once the
`mail has been sorted by destination it is routed through
`additional intermediary processing facilities until it arrives
`· at the local indicated by the destination on the piece of mail.
`At this point, the zip code or routing code is no longer 60
`sufficient to deliver the piece of mail to the intended desti(cid:173)
`nation and the local delivery office must further decode the
`destination address in order to deliver the piece of mail to the
`intended recipient. In addition to processing pieces of mail
`for routing the mail to the correct destination, the pieces of 65
`mail may go on through several other processing steps. For
`example, if the piece of mail is going out of the country, it
`
`ZSCALER Ex. 1005 p.9
`
`

`

`5,598,410
`
`15
`
`20
`
`3
`hardware. The capabilities of this class of switches (for
`example, in such areas as congestion control) are very
`limited in order to keep the hardware simple.
`A second class of packet switches is used in smaller or
`restricted computer networks, such as X.25 networks. By 5
`analogy, these switches are equivalent to the Post Office in
`a single town with no connection to other Post Offices. In
`some sense, these switches are little different from the first
`class of packet switches described above, but there is one
`substantial difference. The format of the packets (that is, the 10
`protocols) handled by the second class of packet switches is
`much more complex. This greater complexity is necessary
`because the protocols are designed to work in less restricted
`environments, and because the packet switches must provide
`a greater range of services. While the formats interpreted by
`the first class of switches are chosen for easy implementa(cid:173)
`tion in hardware, the data packets handled by this second
`class of switches are generally intended to be interpreted by
`software (which can easily and economically handle the
`greater complexity) and provides the inherit benefit of
`incremental flexibility in the design of the packet switch.
`In a third class of packet switches, the packet protocols
`are intended to be used in very large data networks having
`many very dissimilar links (such as a mix of very high speed
`local area networks (LANs) and low speed long distance 25
`point to point lines). Examples of such protocols are the
`United States designed Transmission Control Protocol/In(cid:173)
`ternetwork Program (TCP/IP), and the International Stan(cid:173)
`dards Organization's lnternetworking Protocol/Connection(cid:173)
`less Network Service (IP/CLNS) protocols.
`In addition, this third class of switches (commonly
`referred to as bridge/routers) often must handle multiple
`protocols simultaneously. This third class of switches is very
`similar to the mail processing devices used in the modern
`postal system. Just as there are many countries, there are
`many data packet protocols used in computer networks.
`While a single postal system was once thought to be
`sufficient to handle mail going anywhere in the world, today
`several competing systems like United Parcel Service, Fed(cid:173)
`eral Express, and the U.S. Postal Service exist to handle the 40
`special needs of mail going to every country, state, city,
`town, and street in the world. Similarly, in computer com(cid:173)
`munication systems, the packet switches are more involved
`in the carrying of data, and must understand some of the
`details of each protocol to be able to correctly handle data 45
`packets which are being conveyed in that protocol. The
`routers in this third class of packet switches often have to
`make fairly complex changes to the data packets as they pass
`through the packet switch.
`It is this latter class of packet switches to which the
`following detailed description primarily relates. It will be
`appreciated however, that the detailed description of this
`invention can readily be applied to the first and second class
`of switches as well. In current conventional packet switch
`design, a programmed general purpose processor examines
`each data packet as it arrives over the network interface and
`then processes that packet. Packet processing requires
`assignment of the data packet to an outbound network
`interface for transmission over the next communications link
`in the data path. While attempts are being made to build 60
`higher speed packet switches, based on this architecture of
`using general purpose processors, the attempts have not
`been very successful. One approach is to use faster proces(cid:173)
`sors, another is to make the software run faster, and a third
`is to apply multiple processors to the processing task. All of 65
`these approaches fail to meet the increasing performance
`demands for packet switches for the reasons noted below.
`
`4
`The approach which uses faster processors simply keeps
`pace with processor dependent (future) demands because the
`traffic which the packet switch will handle will depend upon
`the speed of the user processors being used to generate the
`traffic. Those user processors, like the processors in the
`packet switches, will increase in speed at more or less the
`same rate. Accordingly, there is no overall increase in the
`ability of the future packet switch over present packet
`switches, relative to traffic load. Furthermore, this approach
`may be impractical as not being cost-effective for wide(cid:173)
`spread use. For example, two high speed machines, distant
`from each other, must have intermediate switches which are
`all equally as powerful; deployment on a large scale of such
`expensive switches is not likely to be practicable.
`The approach which increases the execution rate of the
`software itself by, for example, removing excess instructions
`or writing the code in assembly language, leads to a limit
`beyond which an increase in performance cannot be made.
`The gains which result are typically small (a few percent)
`and the engineering costs of such distortions in the software
`are significant in the long term. This type of assembly code
`optimization restricts the ability to enhance the software as
`well as port the software to a different processor platform.
`The use of multiple processors to avoid the "processor
`bottleneck" provides some gains but again has limits. Given
`a code path to forward a data packet, it is not plausible to
`split that path into more than a few stages. Typically these
`stages would involve network input, protocol functions, and
`network output. The basis for this limitation is the overhead
`incurred to interface the different processors beyond a
`limited number of task divisions. That is, after a certain
`point, the increase in interface overhead outweighs the
`savings obtained from the additional stage. This is particu(cid:173)
`larly true because of the need to tightly integrate the various
`components; for example, congestion control at the protocol
`level requires dose coordination with the output device.
`Also, the interface overhead costs are made more severe by
`the complication of the interface which is required.
`Currently, most bridge/router
`implementations rely
`heavily on off-the-shelf microprocessors to perform the
`packet forwarding functions. The best implementations are
`able to sustain processing rates approaching 100,000 packets
`per second (PPS). When dealing with media such as ethernet
`or current telecommunications lines, this processing rate is
`more than adequate. When faster media such as Fiber
`Distributed Data Interchange (FDDI) is used, existing pro-
`cessing rates may still be sufficient as long as there is only
`one such high packet rate interface present. When multiple
`high packet rate interfaces are used, 100,000 PPS become
`inadequate. Current software-based implementations for
`bridges/routers are simply not capable of media-rate packet
`forwarding on emerging media such as asynchronous trans(cid:173)
`fer mode (ATM) or Optical Connection-12 Synchronous
`Optical Network (OC-12 SONET) which can accommodate
`55 communication rates up to 6 times the current 100 megabits
`per second limits to rates of 600 megabits per second.
`It should be noted that the ever increasing power of
`off-the-shelf microprocessors might solve the throughput
`problem, but this is probably a vain hope. For example a
`single OC-24 ATM interface can sustain nearly 3 million
`internetworking protocol (IP) packets per second. This is
`over 30 times the rates achieved by the current best software
`techniques. If processing power doubles every year, the wait
`for sufficient processing power to make a software approach
`viable would be at least 4-5 years. In addition, the media
`capabilities will likely continue to increase over such a span
`of years. Additionally, any such processor will likely require
`
`30
`
`35
`
`50
`
`ZSCALER Ex. 1005 p.10
`
`

`

`5,598,410
`
`5
`large amounts of the fastest (most expensive) memory
`available to operate at full speed, resulting in an unaccept(cid:173)
`ably high system cost.
`In general then, the multiprocessor approach is not the
`answer to substantially increasing the throughput of the
`packet switching network. This has been borne out by
`several attempts by technically well-regarded groups to
`build packet switches using this approach. While aggregate
`throughput over a large number of interfaces can be
`obtained, this is, in reality, little different than having a large
`number of small switches. It has thus far proven implausible
`to substantially speed up a single stream using the multi(cid:173)
`processing approach.
`A need still exists for an improved protocol data unit (i.e.,
`frame, cell, or packet) forwarding system which solves the
`above-identified problems in a manner which can better
`handle large numbers of input streams, large numbers of
`output destinations and lines, many different types of com(cid:173)
`munication protocols, and large and small data packets at
`both high bit throughput rates and high packet throughput
`rates, while maintaining reasonable costs and complexity.
`
`SUMMARY OF THE INVENTION
`
`10
`
`6
`The preprocessor preferably establishes the subsequent
`processing requirements of the particular protocol data unit
`by identifying, verifying, and generating at least one asso(cid:173)
`ciated directive for the particular protocol data unit. In
`5 addition, the restructuring device preferably restructures the
`synchronized protocol data unit by deleting, inserting, and
`replacing bits in the synchronized protocol data unit in
`accordance with the at least one associated directive for the
`protocol data unit. Alternatively, the restructuring device
`may, in addition to or in place of modifying particular bits,
`monitor the synchronized protocol data unit by dropping,
`sending, sending a copy of, and/or auditing the contents of
`the synchronized protocol data unit in accordance with the
`at least one associated directives for the protocol data unit.
`In order to accelerate the processing of a received proto-
`15 col data unit, the preprocessor preferably is configured to
`operate on a first and a second protocol data unit such that
`the preprocessor can interleave processing of both the first
`and the second protocol data unit during a single time span.
`In addition, multiple preprocessors connected in either par-
`20 allel or series may be used to increase the through put of
`protocol data units. This use of multiple preprocessors may
`necessitate the use of a more sophisticated synchronizing
`mechanism which is able to track and synchronize more that
`one protocol data unit at a time with the particular associated
`25 directives for each protocol data unit. In addition, the
`preprocessor is configured to establish the at least one
`associated directive for the particular protocol data unit after
`having received only a portion (i.e., the first several bits or
`bytes) of the protocol data unit. The preprocessor may need
`to buffer into memory or store a portion of the particular
`protocol data unit as it is received until a large enough
`portion or the particular portion of the protocol data unit
`which enables the identification of the particular protocol
`data unit is received. Similarly, the restructuring device
`35 preferably is configured to operate on the synchronized
`protocol data unit prior to the protocol data unit processing
`device receiving all of the protocol data unit. This optimi(cid:173)
`zation can be taken a step further by outputting a portion of
`the restructured protocol data unit to a transmitting device
`40 prior to receiving all of the protocol data unit. All of these
`optimizations are particularly important when manipulating
`large protocol data units which extend over several frames
`or consist of several smaller parts that are received at various
`times and/or from various incoming interfaces.
`In accordance with a second aspect of the invention, a
`method of operating a protocol data unit processing device
`in a heterogeneous communication network is provided to
`transfer protocol data units within the communication net(cid:173)
`work. This method is performed by device-implemented
`steps in a series of distinct processing steps that can be
`implemented in one or more processors. In the first process-
`ing step a first and a second protocol data unit are received
`from the communication network where the first and the
`second protocol data unit are of different types. The second
`55 processing step involves establishing the subsequent pro(cid:173)
`cessing requirements of the first and the second protocol
`data unit to generate at least one associated directive for each
`protocol data unit. Each protocol data unit is synchronized
`with the at least one associated directive for each protocol
`data unit to generate a first and a second synchronized
`protocol data unit, respectively. Then, each synchronized
`protocol data unit is restructured in accordance with the at
`least one associated directive for each protocol data unit to
`generate a first and a second restructured protocol data unit,
`respectively. Finally, the first and the second restructured
`protocol data unit are provided to other components in the
`communication network.
`
`30
`
`The present invention provides a packet processing sys(cid:173)
`tem with improved throughput performance by means of a
`method and apparatus for accelerated processing of protocol
`. data units. The present invention addresses the problem of
`media rate forwarding of packets at gigabyte rates by
`providing an architecture for the design of bridges/routers
`that are capable of forwarding packets across different media
`which can sustain multi-gigabyte rates. This architecture
`also includes design approaches for implementing key fea(cid:173)
`tures of a packet-forwarding device operating at these high
`transfer rates, such as filtering functions. By splitting pro(cid:173)
`cessing functions, the present invention avoids the "proces(cid:173)
`sor bottleneck" inherent in prior art processing device archi(cid:173)
`tectures.
`In accordance with a first aspect of the invention, a
`protocol data unit processor is used in a communication
`network to transfer protocol data units within the commu(cid:173)
`nication network. The processor includes a preprocessor
`which establishes subsequent processing requirements of a
`particular protocol data unit received from the communica(cid:173)
`tion network to generate at least one associated directive for 45
`the particular protocol data unit. Subsequently, a synchro(cid:173)
`nizing mechanism synchronizes the particular protocol data
`unit with the at least one associated directive to generate a
`synchronized protocol data unit. A restructuring device
`restructures the synchronized protocol data unit in accor- 50
`dance with the at least one associated directive for the
`protocol data unit to generate a restructured protocol data
`unit. In addition, a method of operating the protocol data unit
`processor in a heterogeneous communication network is
`provided.
`With reference to the postal delivery analogy, the present
`invention can be likened to a system which both increases
`the speed at which pieces of mail can be moved through the
`postal delivery system and provides an ability to handle in
`a common system pieces of mail entered into a variety of 60
`different postal delivery systems. By utilizing the prepro(cid:173)
`cessor and restructuring device of the present invention to
`split the required protocol data unit processing functions, the
`present invention is able to significantly increase the through
`put of the processing device, both in terms of the number of 65
`data packets per second and in terms of the number of bits
`per second which pass through the processing device.
`
`ZSCALER Ex. 1005 p.11
`
`

`

`5,598,410
`
`7
`The first and the second protocol data unit may differ from
`one another in several ways in the heterogeneous commu(cid:173)
`nication network including but not limited to being of
`different physical layer media types, different link layer
`signaling protocols, and/or different network layer proto(cid:173)
`cols.
`These and various other features as well as advantages
`which characterize the present invention will be apparent
`upon reading of the following detailed description and
`review of the associated drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`10
`
`15
`
`8
`attempting a transaction, while the other multiple layer
`system (Open System B) provides an application layer that
`interfaces with applications software in a bank's host com(cid:173)
`puter. The corresponding layers in Open Systems A and B
`5 are called peer layers and communicate through peer pro(cid:173)
`tocols. These peer protocols provide communication support
`for a user's application, performing transaction related tasks
`such as debiting an account, dispensing currency, or cred(cid:173)
`iting an account.
`Actual data flow between the two open systems (Open
`System A and Open System B), however, is from top to
`bottom in one open system (Open System A, the source),
`across the communications line, and then from bottom to top
`in the other open system (Open System B, the destination).
`Each time that user application data passes downward from
`one layer to the next layer in the same system more
`processing information is added. When that information is
`removed and processed by the peer layer in the other system,
`it causes various tasks (error correction, flow control, etc.) to
`be performed. The user is unaware of any of this, of course,
`20 but in fact that's what's happening while the words, "Please
`wait, your transaction is being processed" appears on the
`screen.
`The ISO has specifically defined all seven layers, which
`are summarized below in the order in which the data actually
`flow as they leave the source:
`Layer 7, the application layer, provides for a user appli-
`cation (such as getting money from an automatic bank
`teller machine) to interface with the OSI application
`layer. That OSI application layer has a corresponding
`peer layer in the other open system, the bank's host
`computer.
`Layer 6, the presentation layer, makes sure the user
`information (a request for $50 in cash to be debited
`from your checking account) is in a format (i.e., syntax_
`or sequence of ones and zeros) the destination open
`system can understand.
`Layer 5, the session layer, provides synchronization con(cid:173)
`trol of data between the open systems (i.e., makes sure
`the bit configurations that pass through layer 5 at the
`source are the same as those that pass through layer 5
`at the destination).
`Layer 4, the transport layer, ensures that an end-to-end
`connection has been established between the two open
`systems (i.e., layer 4 at the destination "confirms the
`request for a connection," so to speak, that it has
`received from layer 4 at the source).
`Layer 3, the network layer, provides routing and relaying
`of data through the network (among other things, at
`layer 3 on the outbound side an "address" gets slapped
`on the "envelope" which is then read by layer 3 at the
`destination).
`Layer 2, the data link layer, includes flow control of data
`as messages pass down through this layer in one open
`system and up through the peer layer in the other open
`system.
`Layer 1, the physical interface layer, includes the ways in
`which data communications equipment is connected
`mechanically and electrically, and the means by which
`the data move across those physical connections from
`layer 1 at the source t

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