`i:ii'i;NSEND
`I ic3mbarcadero Center, 8th Floor
`_.
`,all
`-0>
`....
`.t<rancisco, CA 94111-3834
`--~.,,
`N
`;al>B26-240o
`.s:-,..-
`JI)
`..:a
`--
`...0-~
`i NT APPLICATION
`....J
`ASSISTANT COMMISSIONER FOR PATENTS
`- Washington, D. C. 20231
`
`"Express Mail" Label No. EM 284 724 908US
`
`Date of Deposit November 24, 1997
`
`I hereby certify that this is being deposited with the
`United States Postal Service "Express Mail Post Office
`to Addressee" service under 37 CPR 1.10 on the date
`indicated above and is addressed to:
`
`_\-
`
`i \
`
`Sir:
`Transmitted herewith for filing is the [x] patent application,
`( ] design patent application, [ ] continuation-in-part patent
`application of
`Inventor(s): Robert L..Packer
`By ---,4~~L-~~~-------
`For: SYSTEM FOR MANAGING FLOW BANDWIDTH
`UTILIZATI0N AT NETWORK, TRANSPORT AND APPLICATION LAYE
`[X] This application claims priority from each of the following Application Nos.
`60/032,485
`/12/09/96
`/ _____
`
`Assistant Commissioner for Patents
`Washington, D.C. 20231
`
`-----·-----·
`
`[X] Please amend this application by adding the following before the first sentence: --This application claims the benefit of U.S.
`Provisional Application No. 60/032,485, filed December 9, 1996, the disclosure of which is incorporated by reference.--
`
`Enclosed are:
`sheet(s) of [ ] formal [x) informal drawing(s).
`[X] 20
`
`[x] An assignment of the invention to ,,_P.::.,ac""k""et""ee~r.....,.,In""'c_,_. -----------------------(cid:173)
`[x] A [x] signed [] unsigned Declaration & Power of Attorney.
`[ ] A [ ] signed [ ] unsigned Declaration.
`[] A Power of Attorney by Assignee with Certificate Under 37 C.F.R. Section 3.73(b).
`[x] A verified statement to establish small entity status under 37 CPR 1.9 and 37 CPR 1.27 [] is enclosed [] was filed
`in the earliest of the above-identified patent application(s).
`[ ] A certified copy of a
`[x] Appendices A-D
`~ [ ] A petition to extend time to respond in the parent application of this continuation-in-part application.
`t~*" [ ] The filing fee has been calculated as shown below:
`
`application.
`
`(Col. 1)
`
`(Col. 2)
`
`FOR:
`
`BASIC FEE
`
`TOTAL CLAIMS
`
`INDEP CLAIMS
`
`26
`
`5
`
`-20=
`
`-3=
`
`6
`
`2
`
`[] MULTIPLE DEPENDENT CLAIM PRESENTED
`* If the difference in Col. 1 is less than zero,
`enter "0" in Col. 2
`
`SMALL ENTITY
`FEE OR
`$395 OR
`$ 66 OR
`OR
`
`2
`
`x41=
`
`$ 82
`
`6 xll=
`
`+135=
`
`$
`
`OR
`
`+270=
`
`TOTAL
`
`$543 OR
`
`TOTAL
`
`OTHER THAN A
`SMALL ENTITY
`
`x22=
`
`x82=
`
`FEE
`
`$790
`
`$
`
`$
`
`$
`
`$
`
`'j.-LP
`/
`
`Please charge Deposit Account No. 20-1430 as follows:
`[X] Filing fee
`[X] Any additional fees associated with this paper or
`during the pendency of this application
`[] The issue fee set in 37 CPR 1.18 at or before mailing of the Notice
`of Allowance, pursuant to 37 CPR 1.311(b).
`
`$480.00
`
`[ ] A check for $
`is enclosed.
`extra copies of this sheet are enclosed.
`2 __
`
`Telephone:
`
`(650) 326-2400
`
`Paul A. Durdik
`Reg. No.: 37,819
`Attorneys for Applicant
`
`EX 1027 Page 1
`
`
`
`Attorney Docket No. 17814-5.20
`
`PATENT APPLICATION
`
`SYSTEM FOR MANAGING FLOW BANDWIDTH UTILIZATION AT
`NETWORK, TRANSPORT AND APPLICATION LAYERS IN STORE
`AND FORWARD NETWORK
`
`Inventor:
`
`Assignee:
`
`Robert L. Packer (USA)
`16095 Redwood Lodge Rd.
`Los Gatos, CA 95036
`
`Packeteer, Inc.
`(a corporation of Delaware)
`307 Orchard City Drive, Suite 305
`Campbell, CA 95008
`
`Entity:
`
`Small
`
`TOWNSEND and TOWNSEND and CREW LLP
`Two Embarcadero Center, 8th Floor
`San Francisco, CA 94111-3834
`Telephone (650) 326-2400
`Fax (650) 326-2422
`
`EX 1027 Page 2
`
`
`
`PATENT
`Attorney Docket No. 17814-5.20
`
`s
`
`SYSTEM FOR MANAGING FLOW BANDWIDTH UTILIZATION AT
`NETWORK, TRANSPORT AND APPLICATION LAYERS IN STORE
`AND FORWARD NETWORK
`
`COPYRIGHT NOTICE
`A portion of the disclosure of this patent document contains material which
`
`10
`
`is subject to copyright protection. The copyright owner has no objection to the facsimile
`
`reproduction by anyone of the patent document or the patent disclosure as it appears in
`
`the Patent and Trademark Office patent file or records, but otherwise reserves all
`
`copyright rights whatsoever.
`
`15
`
`20
`
`CROSS-REFERENCE TO RELATED APPLICATIONS
`The following related commonly-owned copending application is being
`
`filed concurrently and is hereby incorporated by reference in its entirety for all purposes:
`
`U.S. Patent Application Serial No.
`
`, in the name of Robert L. Packer, entitled
`
`"Method for Managing Flow Bandwidth Utilization at Network, Transport and
`
`Application Layers," (attorney docket number 017814-000510).
`This application claims priority from the following U.S. Provisional
`
`Application, the disclosure of which, including all appendices and all attached
`documents, is incorporated by reference in its entirety for all purposes:
`
`U.S. Provisional Patent Application Serial No. 60/032,485, Robert L.
`
`25
`
`Packer, entitled, "Method for Managing Flow Bandwidth Utilization at Network,
`
`Transport and Application Layers in Store and Forward Network", filed December 9,
`
`1996.
`
`Further, this application makes reference to the following commonly
`
`owned U.S. Patent Application, which is incorporated herein in its entirety for all
`purposes:
`
`Copending U.S. Patent Application Serial No. 08/762,828,
`
`in the name of
`
`Robert L. Packer, entitled "Method for Rapid Data Rate Detection in a Packet
`Communication Environment Without Data Rate Supervision, 11 relates to a technique for
`automatically determining the data rate of a TCP connection.
`Further, this application makes reference to the following U.S. Patent
`
`30
`
`35
`
`Application:
`
`EX 1027 Page 3
`
`
`
`2
`
`Copending U.S. Patent Application Serial No. 08/742,994,
`
`in the name of
`
`Robert L. Packer, entitled "Method for Explicit Data Rate Control in a Packet
`
`Communication Environment Without a Data Rate Supervision," relates to a technique
`
`for automatically scheduling TCP packets for transmission.
`
`5
`
`PAPER APPENDIX
`
`The following paper appendices are included herewith and incorporated by
`
`reference in their entirety for all purposes:
`
`Appendix A: Source code listing of bandwidth allocation processing an
`
`10
`
`embodiment of the invention comprising ten (10) sheets;
`
`Appendix B: Source code listing of URL classification processing an
`
`embodiment of the invention comprising twenty-four (24) sheets;
`
`Appendix C: Source code listing of classification processing an
`
`embodiment of the invention comprising nine (9) sheets; and
`
`15
`
`Appendix D: Source code listing of speed scaling processing an
`
`embodiment of the invention comprising ten (10) sheets.
`
`BACKGROUND OF THE INVENTION
`
`This invention relates to digital packet telecommunications, and particularly
`
`20
`
`to management of network bandwidth based on information ascertainable from multiple
`
`layers of OSI network model. It is particularly useful in conjunction with data flow rate
`
`detection and control of a digitally-switched packet telecommunications environment
`
`normally not subject to data flow rate control.
`
`25
`
`data communication network environment called the Internet and is also used in private
`
`The ubiquitous TCP/IP protocol suite, which implements the world-wide
`
`networks (Intranets), intentionally omits explicit supervisory function over the rate of data
`
`transport over the various media which comprise the network. While there are certain
`
`perceived advantages, this characteristic has the consequence of juxtaposing very high(cid:173)
`
`speed packet flows and very low-speed packet flows in potential conflict for network
`
`30
`
`resources, which results in inefficiencies. Certain pathological loading conditions can
`
`result in instability, overloading and data transfer stoppage. Therefore, it is desirable to
`
`provide some mechanism to optimize efficiency of data transfer while minimizing the risk
`
`of data loss. Early indication of the rate of data flow which can or must be supported is
`
`EX 1027 Page 4
`
`
`
`3
`
`very useful. In fact, data flow rate capacity information is a key factor for use in
`
`resource allocation decisions.
`
`Internet/Intranet technology is based largely on the TCP/IP protocol suite,
`
`where IP, or Internet Protocol, is the network layer protocol and TCP, or Transmission
`
`5
`
`Control Protocol, is the transport layer protocol. At the network level, IP provides a
`
`"datagram" delivery service. By contrast, TCP builds a transport level service over the
`
`datagram service to provide guaranteed, sequential delivery of a byte stream between two
`
`IP hosts.
`
`10
`
`limit the rate at which TCP endpoints emit data. However, TCP lacks explicit data rate
`
`TCP flow control mechanisms operate exclusively at the end stations to
`
`15
`
`20
`
`25
`
`control. In fact, there is heretofore no concept of coordination of data rates among
`
`multiple flows. The basic TCP flow control mechanism is a sliding window,
`
`superimposed on a range of bytes beyond the last explicitly-acknowledged byte. Its
`
`sliding operation limits the amount of unacknowledged transmissible data that a TCP
`
`endpoint can emit.
`Another flow control mechanism is a congestion window, which is a
`
`refinement of the sliding window scheme, which employs conservative expansion to fully
`
`utilize all of the allowable window. A component of this mechanism is sometimes
`
`referred to as "slow start".
`
`The sliding window flow control mechanism works in conjunction with the
`
`Retransmit Timeout Mechanism (RTO), which is a timeout to prompt a retransmission of
`
`unacknowledged data. The timeout length is based on a running average of the Round
`
`Trip Time (RTT) for acknowledgment receipt, i.e. if an acknowledgment is not received
`within (typically) the smoothed RTT + 4*mean deviation, then packet loss is inferred and
`the data pending acknowledgment is retransmitted.
`
`Data rate flow control mechanisms which are operative end-to-end without
`
`explicit data rate control draw a strong inference of congestion from packet loss (inferred,
`typically, by RTO). TCP end systems, for example, will 'back-off', i.e., inhibit
`
`transmission in increasing multiples of the base RTT average as a reaction to consecutive
`
`30
`
`packet loss.
`
`Bandwidth Management in TCP/IP Networks
`
`Conventional bandwidth management in TCP/IP networks is accomplished
`
`EX 1027 Page 5
`
`
`
`4
`
`by a combination of TCP end systems and routers which queue packets and discard
`
`packets when certain congestion thresholds are exceeded. The discarded, and therefore
`
`unacknowledged, packet serves as a feedback mechanism to the TCP transmitter. (TCP
`
`end systems are clients or servers running the TCP transport protocol, typically as part of
`
`5
`
`their operating system.)
`
`The term "bandwidth management" is often used to refer to link level
`
`bandwidth management, e.g. multiple line support for Point to Point Protocol (PPP).
`
`Link level bandwidth management is essentially the process of keeping track of all traffic
`
`and deciding whether an additional dial line or ISDN channel should be opened or an
`
`10
`
`extraneous one closed. The field of this invention is concerned with network level
`
`bandwidth management, i.e. policies to assign available bandwidth from a single logical
`
`link to network flows.
`
`Routers support various queuing options. These options are generally
`
`intended to promote fairness and to provide a rough ability to partition and prioritize
`
`15
`
`separate classes of traffic. Configuring these queuing options with any precision or
`
`without side effects is in fact very difficult, and in some cases, not possible. Seemingly
`
`simple things, such as the length of the queue, have a profound effect on traffic
`
`characteristics. Discarding packets as a feedback mechanism to TCP end systems may
`
`cause large, uneven delays perceptible to interactive users.
`
`20
`
`In a copending U.S. Patent Application Serial No. 08/742,994, in the
`
`name of Robert L. Packer, entitled "Method for Explicit Data Rate Control in a Packet
`
`Communication Environment Without Data Rate Supervision," a technique for
`
`automatically scheduling TCP packets for transmission is disclosed. Furthermore, in a
`
`copending U.S. Patent Application Serial No. 08/762,828, in the name of Robert L.
`
`25
`
`Packer, entitled "Method for Rapid Data Rate Detection in a Packet Communication
`
`Environment Without Data Rate Supervision," a technique for automatically determining
`
`the data rate of a TCP connection is disclosed. While these patent applications teach
`
`methods for solving problems associated with scheduling transmissions and for
`
`automatically determining a data flow rate on a TCP connection, respectively, there is no
`
`30
`
`teaching in the prior art of methods for explicitly managing TCP packet traffic based
`
`upon information about the flow's characteristics at multiple OSI protocol layers.
`
`Bandwidth management is heretofore not known to employ information
`
`contained in the packets corresponding to higher OSI protocol layers, even though such
`
`EX 1027 Page 6
`
`
`
`information may be extremely useful in making bandwidth allocation and management
`
`decisions.
`
`5
`
`5
`
`According to the invention, in a packet communication environment, a
`
`SUMMARY OF THE INVENTION
`
`method is provided for classifying packet network flows for use in determining a policy,
`
`or rule of assignment of a service level, and enforcing that policy by direct rate control.
`
`The method comprises applying individual instances of traffic objects, i.e., packet network
`
`flows to a classification model based on selectable information obtained from a plurality
`
`10
`
`of layers of a multi-layered communication protocol, then mapping the flow to the
`
`defined traffic classes, which are arbitrarily assignable by an offline manager which
`
`creates the classification. It is useful to note that the classification need not be a complete
`
`enumeration of the possible traffic.
`
`In one aspect of the invention, bandwidth may be divided into arbitrary
`
`15
`
`units, partitions, facilitating isolation and allocation. A partition is allocated for a class or
`
`set of traffic classes, carving the bandwidth of the associated link into multiple,
`
`independent pieces.
`
`In another aspect of the invention, available bandwidth may be allocated
`
`among flows according to a policy, which may include any combination of guaranteed
`
`20
`
`information rate, excess information rate, the later allocated according to a priority.
`
`In another aspect of the invention, bandwidth resource needs of multiple
`
`heterogeneous requesting flows are reconciled with available bandwidth resources in
`
`accordance with policy of each flow based upon the flow's class. Flows requiring
`
`reserved service with guaranteed information rates, excess information rates or unreserved
`
`25
`
`service are reconciled with the available bandwidth resources continuously and
`
`automatically.
`
`In another aspect of the invention, providing an admissions policy which is
`
`invoked whenever a request for a bandwidth cannot be met consistently with other users
`
`of bandwidth.
`
`30
`
`An advantage of network management techniques according to the present
`
`invention is that network managers need only define traffic classes which are of interest.
`
`A further advantage of the present invention is that traffic classes may
`
`include information such as a URI for web traffic.
`
`EX 1027 Page 7
`
`
`
`6
`
`A yet further advantage of the present invention is that service levels may
`
`be defined in terms of explicit rates and may be scaled to a remote client or server's
`
`network access rate. Different service levels may be specified for high speed and low
`
`speed users.
`
`A yet further advantage of the present invention is that service levels may
`
`be defined in terms of a guaranteed minimum service level.
`
`The invention will be better understood upon reference to the following
`
`detailed description in connection with the accompanying drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Fig. IA depicts a representative client server relationship in accordance
`with a particular embodiment of the invention;
`Fig. lB depicts a functional perspective of the representative client server
`
`relationship in accordance with a particular embodiment of the invention;
`
`Fig. 1 C depicts a representative intemetworking environment in accordance
`
`with a particular embodiment of the invention;
`Fig. ID depicts a relationship diagram of the layers of the TCP/IP protocol
`
`suite;
`
`5
`
`10
`
`15
`
`20
`
`the exchange of packets between hosts using the TCP protocol;
`
`Fig. lE depicts a two dimensional representation of timing relationships in
`
`Figs. 2A-2B depict representative divisions of bandwidth according to a
`
`particular embodiment of the invention;
`
`Figs. 2C-2E are flow charts depicting process steps according to a
`
`particular embodiment of the invention;
`Fig. 3 is a block diagram of a particular embodiment according to the
`
`invention;
`
`Fig. 4A is a block diagram of a data structure according to a particular
`
`embodiment of the invention;
`
`Fig. 4B is a block diagram of data structure according to a particular
`
`embodiment of the invention; and
`Figs. 5A-5H are flow charts depicting process steps according to a
`
`particular embodiment of the invention.
`
`25
`
`30
`
`EX 1027 Page 8
`
`
`
`7
`
`DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
`
`A preferable embodiment of a flow bandwidth management system
`
`according to the invention has been reduced to practice and will be made available under
`
`the trade name "PacketShaper™."
`
`5
`
`1. 0
`
`Introduction
`
`The present invention provides techniques to manage network bandwidth
`
`such as on a network access link between a local area network and a wide area network.
`
`Systems according to the present invention enable network managers to: define traffic
`
`1 O
`
`classes; create policies which define service levels for traffic classes; and isolate
`
`bandwidth resources associated with certain traffic classes. Inbound as well as outbound
`
`traffic may be managed. Table 1 provides a definitional list of terminology used herein.
`
`15
`
`20
`
`25
`
`LIST OF DEFINITIONAL TERMS
`
`ADMISSIONS CONTROL A policy invoked whenever a system according to the
`
`invention detects that a guaranteed information rate cannot
`
`be maintained. An admissions control policy is analogous to
`
`a busy signal in the telephone world.
`
`CLASS SEARCH ORDER A search method based upon traversal of a N-ary tree data
`
`structure containing classes.
`
`COMMITTED INFORMATION
`RATE
`(CIR)
`
`A rate of data flow allocated to reserved service traffic for
`
`rate based bandwidth allocation for a committed bandwidth.
`
`Also called a guaranteed information rate (GIR).
`
`30
`
`EXCEPTION
`
`A class of traffic provided by the user which supersedes an
`
`automatically determined classification order.
`
`EXCESS INFORMATION
`RATE
`
`EX 1027 Page 9
`
`
`
`8
`
`(EIR)
`
`A rate of data flow allocated to reserved service traffic for
`
`rate based bandwidth allocation for uncommitted bandwidth
`
`resources.
`
`5
`
`FLOW
`
`A flow is a single instance of a traffic class. For example,
`
`all packets in a TCP connection belong to the same flow.
`
`As do all packets in a UDP session.
`
`10
`
`GUARANTEED
`INFORMATION RATE
`(GIR)
`
`A rate of data flow allocated to reserved service traffic for
`
`rate based bandwidth allocation for a committed bandwidth.
`
`Also called a committed information rate (CIR).
`
`15
`
`HARD ISOLATION
`
`Hard isolation results from the creation of an entirely
`
`separate logical channel for a designated set of classes.
`
`20
`
`25
`
`30
`
`INSIDE
`
`On the system side of an access link. Outside clients and
`
`servers are on the other side of the access link.
`
`ISOLATION
`
`Isolation is the degree that bandwidth resources are allocable
`
`to traffic classes.
`
`OUTSIDE
`
`On the opposite side of an access link as viewed from the
`
`perspective of the system on which the software resides.
`
`PARTITION
`
`Partition is an arbitrary unit of network resources.
`
`POLICY
`
`A rule for the assignment of a service level to a flow.
`
`POLICY INHERITANCE A method for assigning policies to flows for which no
`
`policy exists in a hierarchical arrangement of policies. For
`
`example, if a flow is determined to be comprised of FTP
`
`packets for Host A, and no corresponding policy exists, a
`
`EX 1027 Page 10
`
`
`
`5
`
`POLICY BASED
`SCALING
`
`9
`
`policy associated with a parent node, such as an FTP policy,
`
`may be located and used. See also POUCY SEARCH
`
`ORDER.
`
`An adjustment of a requested data rate for a particular flow
`
`based upon the policy associated with the flow and
`
`information about the flow's potential rate.
`
`10
`
`RESERVED SERVICE
`
`Reserved service is a service level intended for traffic which
`
`"bursts" or sends chunks of data. Reserved service is
`
`defined in terms of a scaled rate.
`
`15
`
`20
`
`25
`
`30
`
`SCALED RATE
`
`Assignment of a data rate based upon detected speed.
`
`SERVICE LEVEL
`
`A service paradigm having a combination of characteristics
`
`defined by a network manager to handle a particular class of
`
`traffic. Service levels may be designated as either reserved
`
`or unreserved.
`
`SOFT ISOLATION
`
`Restricting GIR allocated for traffic classes in a partition.
`
`TARGET RATE
`
`A target rate is a combination of a guaranteed rate and an
`
`excess rate. Target rate is a policy-based paradigm. Excess
`
`rate is allocated by systems according to the invention from
`
`bandwidth that is not consumed by reserved service.
`
`Policies will demand excess rate at a given priority and
`
`systems according to the invention satisfy this demand by a
`
`priority level.
`
`TRAFFIC CLASS
`
`All traffic between a client and a server endpoints. A single
`
`instance of a traffic class is called a flow. Traffic classes
`
`have properties or class attributes such as, directionality,
`
`EX 1027 Page 11
`
`
`
`10
`
`which is the property of traffic to be flowing inbound or
`
`outbound.
`
`UNRESERVED SERVICE Umeserved service is a service level defined in terms of
`
`5
`
`priority in which no reservation of bandwidth is made.
`
`1.1
`
`Hardware Overview
`
`Table 1
`
`The method for flow bandwidth management in a packet oriented
`
`10
`
`telecommunications network environment of the present invention is implemented in the
`
`C programming language and is operational on a computer system such as shown in Fig.
`
`lA. This invention may be implemented in a client-server environment, but a client(cid:173)
`
`server environment is not essential. This figure shows a conventional client-server
`
`computer system which includes a server 20 and numerous clients, one of which is
`
`15
`
`shown as client 25. The use of the term "server" is used in the context of the invention,
`
`wherein the server receives queries from (typically remote) clients, does substantially all
`
`the processing necessary to formulate responses to the queries, and provides these
`
`responses to the clients. However, server 20 may itself act in the capacity of a client
`
`when it accesses remote databases located at another node acting as a database server.
`
`20
`
`The hardware configurations are in general standard and will be described
`
`only briefly.
`
`In accordance with known practice, server 20 includes one or more
`
`processors 30 which communicate with a number of peripheral devices via a bus
`
`subsystem 32. These peripheral devices typically include a storage subsystem 35,
`
`comprised of a memory subsystem 35a and a file storage subsystem 35b holding
`
`25
`
`computer programs (e.g., code or instructions) and data, a set of user interface input and
`
`output devices 37, and an interface to outside networks, which may employ Ethernet,
`
`Token Ring, ATM, IEEE 802.3, ITU X.25, Serial Link Internet Protocol (SLIP) or the
`
`public switched telephone network. This interface is shown schematically as a "Network
`Interface" block 40. It is coupled to corresponding interface devices in client computers
`
`30
`
`via a network connection 45.
`
`Client 25 has the same general configuration, although typically with less
`
`storage and processing capability. Thus, while the client computer could be a terminal
`
`or a low-end personal computer, the server computer is generally a high-end workstation
`
`EX 1027 Page 12
`
`
`
`11
`
`or mainframe, such as a SUN SPARC server. Corresponding elements and subsystems
`
`in the client computer are shown with corresponding, but primed, reference numerals.
`Bus subsystem 32 is shown schematically as a single bus, but a typical
`
`system has a number of buses such as a local bus and one or more expansion buses (e.g.,
`
`5
`
`ADB, SCSI, ISA, EISA, MCA, NuBus, or PCI), as well as serial and parallel ports.
`
`Network connections are usually established through a device such as a network adapter
`
`on one of these expansion buses or a modem on a serial port. The client computer may
`
`be a desktop system or a portable system.
`The user interacts with the system using interface devices 37' (or devices
`
`10
`
`37 in a standalone system). For example, client queries are entered via a keyboard,
`communicated to client processor 30', and thence to modem or network interface 40'
`
`over bus subsystem 32'. The query is then communicated to server 20 via network
`
`connection 45. Similarly, results of the query are communicated from the server to the
`client via network connection 45 for output on one of devices 37' (say a display or a
`
`15
`
`printer), or may be stored on storage subsystem 35'.
`
`Fig. lB is a functional diagram of a computer system such as that of Fig.
`lA. Fig. lB depicts a server 20, and a representative client 25 of a plurality of clients
`
`which may interact with the server 20 via the Internet 45 or any other communications
`
`method. Blocks to the right of the server are indicative of the processing steps and
`
`20
`
`functions which occur in the server's program and data storage indicated by blocks 35a
`
`and 35b in Fig. lA. A TCP/IP 0 stack" 44 works in conjunction with Operating System
`
`42 to communicate with processes over a network or serial connection attaching Server
`
`20 to Internet 45. Web server software 46 executes concurrently and cooperatively with
`
`other processes in server 20 to make data objects 50 and 51 available to requesting
`
`clients. A Common Gateway Interface (CGI) script 55 enables information from user
`clients to be acted upon by web server 46, or other processes within server 20.
`Responses to client queries may be returned to the clients in the form of a Hypertext
`Markup Language (HTML) document outputs which are then communicated via Internet
`45 back to the user.
`Client 25 in Fig. lB possesses software implementing functional processes
`
`operatively disposed in its program and data storage as indicated by block 35a' in Fig.
`
`lA. TCP/IP stack 44', works in conjunction with Operating System 42' to communicate
`with processes over a network or serial connection attaching Client 25 to Internet 45.
`
`25
`
`30
`
`EX 1027 Page 13
`
`
`
`12
`
`Software implementing the function of a web browser 46' executes concurrently and
`
`cooperatively with other processes in client 25 to make requests of server 20 for data
`
`objects 50 and 51. The user of the client may interact via the web browser 46' to make
`
`such queries of the server 20 via Internet 45 and to view responses from the server 20
`
`5
`
`via Internet 45 on the web browser 46'.
`
`1.2
`
`Network Overview
`
`Fig. lC is illustrative of the internetworking of a plurality of clients such
`
`as client 25 of Figs. lA and lB and a plurality of servers such as server 20 of Figs. lA
`
`10
`
`and lB as described herein above. In Fig. lC, network 70 is an example of a Token
`
`Ring or frame oriented network. Network 70 links host 71, such as an IBM RS6000
`
`RISC workstation, which may be running the AIX operating system, to host 72, which is
`
`a personal computer, which may be running Windows 95, IBM OS/2 or a DOS operating
`
`system, and host 73, which may be an IBM AS/400 computer, which may be running the
`
`15
`
`OS/400 operating system. Network 70 is internetworked to network 60 via a system
`
`gateway which is depicted here as router 75, but which may also be a gateway having a
`
`firewall or a network bridge. Network 60 is an example of an Ethernet network that
`
`interconnects host 61, which is a SP ARC workstation, which may be running SUN OS
`
`operating system with host 62, which may be a Digital Equipment V AX6000 computer
`
`20
`
`which may be running the VMS operating system.
`
`Router 75 is a network access point (NAP) of network 70 and network 60.
`
`Router 75 employs a Token Ring adapter and Ethernet adapter. This enables router 75
`
`to interface with the two heterogeneous networks. Router 75 is also aware of the Inter(cid:173)
`
`network Protocols, such as ICMP ARP and RIP, which are described herein below.
`
`25
`
`Fig. lD is illustrative of the constituents of the Transmission Control
`
`Protocol/Internet Protocol (TCP/IP) protocol suite. The base layer of the TCP/IP
`
`protocol suite is the physical layer 80, which defines the mechanical, electrical,
`
`functional and procedural standards for the physical transmission of data over
`
`communications media, such as, for example, the network connection 45 of Fig. lA.
`
`30
`
`The physical layer may comprise electrical, mechanical or functional standards such as
`
`whether a network is packet switching or frame-switching; or whether a network is based
`
`on a Carrier Sense Multiple Access/Collision Detection (CSMA/CD) or a frame relay
`
`paradigm.
`
`EX 1027 Page 14
`
`
`
`13
`
`Overlying the physical layer is the data link layer 82. The data link layer
`
`provides the function and protocols to transfer data between network resources and to
`
`detect errors that may occur at the physical layer. Operating modes at the datalink layer
`
`comprise such standardized network topologies as IEEE 802.3 Ethernet, IEEE 802.5
`
`Token Ring, ITU X.25, or serial (SLIP) protocols.
`Network layer protocols 84 overlay the datalink layer and provide the
`means for establishing connections between networks. The standards of network layer
`protocols provide operational control procedures for internetworking communications and
`
`routing information through multiple heterogenous networks. Examples of network layer
`protocols are the Internet Protocol (IP) and the Internet Control Message Protocol
`
`(ICMP). The Address Resolution Protocol (ARP) is used to correlate an Internet address
`
`and a Media Access Address (MAC) for a particular host. The Routing Information
`Protocol (RIP) is a dynamic routing protocol for passing routing information between
`
`hosts on networks. The Internet Control Message Protocol (ICMP) is an internal
`
`5
`
`10
`
`15
`
`protocol for passing control messages between hosts on various networks. ICMP
`
`messages provide feedback about events in the network environment or can help
`
`determine if a path exists to a particular host in the network environment. The latter is
`called a "Ping". The Internet Protocol (IP) provides the basic mechanism for routing
`
`packets of information in the Internet. IP is a non-reliable communication protocol.
`
`It
`
`20
`
`provides a "best efforts" delivery service and does not commit network resources to a
`
`particular transaction. nor does it perform retransmissions or give acknowledgments.
`The transport layer protocols 86 provide end-to-end transport services
`
`across multiple heterogenous networks. The User Datagram Protocol (UDP) provides a
`
`connectionless, datagram oriented service which provides a non-reliable delivery
`
`25
`
`mechanism for streams of information. The Transmission Control Protocol (TCP)
`provides a reliable session-based service for delivery of sequenced packets of information
`across the Internet. TCP provides a connection oriented reliable mechanism for
`
`information delivery.
`The session, or application layer 88 provides a list of network applications
`
`30
`
`and utilities, a few of which are illustrated here. For example, File Transfer Protocol
`
`(FTP) is a standard TCP/IP protocol for transferring files from one machine to another.
`
`FTP clients establish sessions through TCP connections with FTP servers in order to
`
`obtain files. Telnet is a standard TCP/IP protocol for remote terminal connection. A
`
`EX 1027 Page 15
`
`
`
`14
`
`Telnet client acts as a terminal emulator and establishes a connection using TCP as the
`
`transport mechanism with a Telnet server. The Simple Network Management Protocol
`(SNMP) is a standard for managing TCP/IP networks. SNMP tasks, called "agents",
`
`monitor network status parameters and transmit these status parameters to SNMP tasks
`
`5
`
`called "managers." Managers track the status of associated networks. A Remote
`
`Procedure Call (RPC) is a programming interface which enables p