throbber
United States Patent (19)
`Maria et al.
`
`USOO6158008A
`Patent Number:
`11
`(45) Date of Patent:
`
`6,158,008
`*Dec. 5, 2000
`
`54 METHOD AND APPARATUS FOR UPDATING
`ADDRESS LSTS FOR A PACKET FILTER
`PROCESSOR
`
`75 Inventors: SE Maria. tly
`s
`Guan,
`73 ASSignee: (IST Wireless Svcs. Inc., Redmond,
`S.
`
`sts Dale
`
`5,632,011 5/1997 Landfield et al. ...................... 395/326
`5,655,152 8/1997 Ohnishi et al. ......................... 395/856
`5,678,041 10/1997 Baker et al. ............................ 395/609
`5,684.951 11/1997 Goldman et al. ...
`... 395/188.01
`5,757,924 5/1998 Friedman et al. ........................ 380/49
`5,802,319 9/1998 Faulk, Jr. et al. ................. 395/200.79
`5,825,891 10/1998 Levesque et al. ........................ 380/49
`5,828,833 10/1998 Belville et al. .
`... 395/187.01
`6,035,423 3/2000 Hodges et al. ............................ 714/38
`
`*
`
`Notice:
`
`FOREIGN PATENT DOCUMENTS
`This patent issued on a continued pros
`ecution application filed under 37 CFR WES 3.E. WE
`1.53(d), and is subject to the twenty year
`f
`f
`patent term provisions of 35 U.S.C.
`OTHER PUBLICATIONS
`154(a)(2).
`
`21 Appl. No.: 08/956,990
`22 Filed:
`Oct. 23, 1997
`(51) Int. Cl. ................................................ G06F 11/30
`52 U.S. Cl. ..................
`713/201; 713/154
`58 Field of Search ..................................... 713/200, 201,
`713/202, 100, 153, 154; 709/225, 229,
`242; 707/9; 380/23, 25
`References Cited
`
`56)
`
`U.S. PATENT DOCUMENTS
`4,184.117 1/1980 Lindner ..................................... 325/33
`4,888,796 12/1989 Olivo, Jr. .....
`... 379/101
`5,172,111 12/1992 Olivo, Jr. .....
`340/825.31
`5,396,493 3/1995 Sugiyama .................................. 370/60
`5,448,698 9/1995 Wilkes .........
`395/200.01
`5,481,720 1/1996 Loucks et al. ...
`... 395/700
`5,553.315 9/1996 Sobti et al......................... 455/56.1
`5,561,770 10/1996 de Bruijn et al.
`... 395/200.06
`5,606,668 2/1997 Shwed ..............
`... 395/200.11
`5,615,340 3/1997 Dai et al. ..
`... 395/200.17
`5,627,886 5/1997 Bowman ................................. 379/111
`
`Microsoft Press, “Computer Dictionary, 2nd ed., pp.
`105-106.
`Primary Examiner Robert W. BeauSoliel, Jr.
`Assistant Examiner-Scott T. Baderman
`57
`ABSTRACT
`A dedicated data packet filtering processor whose only
`function is to filter data packets based on a list of source IP
`addresses Stored in high-speed memory of the processor. The
`processor has a Specialized operating System which controls
`the operation of the processor. The processor examines the
`Source IP address of each received data packet to determine
`if the source IP address matches one of the stored source IP
`addresses, and if there is a match, either discards or forwards
`the data packet depending on the processor configuration.
`The list of Source IP addresses are updated by a service
`provider having a central administrative Site. The Service
`provider keeps these lists up to data and periodically updates
`the Source IP addresses Stored in the random acceSS memory
`of the dedicated IP filtering processors
`g p
`
`9 Claims, 4 Drawing Sheets
`
`
`
`10
`
`
`
`
`
`ROUTER
`
`PACKET FILTER
`PROCESSOR
`
`12
`
`14
`
`18
`
`
`
`END-USER
`TERMINAL
`
`NETWORK B
`
`16
`
`
`
`
`
`GUEST TEK EXHIBIT 1011
`Guest Tek v. Nomadix, IPR2019-01191
`
`

`

`U.S. Patent
`
`Dec. 5, 2000
`
`Sheet 1 of 4
`
`6,158,008
`
`12
`
`ROUTER
`
`
`
`
`
`PACKET FILTER
`PROCESSOR
`
`
`
`16
`
`

`

`U.S. Patent
`
`Dec. 5, 2000
`
`Sheet 2 of 4
`
`6,158,008
`
`FIC. 2
`
`34
`
`LAN/F CONN.
`
`RS232
`CONN.
`
`RS232
`I/F
`
`36
`38
`
`802.3
`INTERFACE
`
`FIFO
`
`20
`
`22
`
`CLK
`
`26
`
`28
`
`30
`
`ric Hay r"
`
`DRAM
`CONTROL
`
`BANK
`ADDRESS
`LIST
`
`33
`
`
`
`4. O
`
`44
`
`FIFO
`
`802.3/F
`
`LAN/F CONN. i.
`
`NWRAM
`32K
`
`46
`
`42
`
`48
`
`

`

`U.S. Patent
`
`Dec. 5, 2000
`
`Sheet 3 of 4
`
`6,158,008
`
`FIG. 3
`
`START
`
`RECEIVE PACKET
`
`DETERMINE SOURCE
`ADDRESS
`
`COMPARE SOURCE
`ADDRESS WITH LIST
`
`
`
`ADDRESS ON
`LIST
`
`50
`
`52
`
`54
`
`
`
`
`
`
`
`
`
`PASS PACKET 2
`
`YES
`SEND PACKET TO
`DESTINATION NETWORK
`
`60
`
`62
`
`
`
`
`
`
`
`
`
`64
`
`
`
`
`
`DROP PACKET
`
`
`
`
`
`

`

`U.S. Patent
`
`Dec. 5, 2000
`
`Sheet 4 of 4
`
`6,158,008
`
`FIG. 4
`
`84
`
`CPU/MEMORY BUS
`
`72
`
`74
`
`76
`
`78
`
`80
`
`82
`
`MAIN
`
`CPU
`
`MEMORY a ADAPTER || ".
`
`BUS
`
`LIST
`REPLICATION |
`
`USER
`| INTERFACE
`
`Vof
`
`SYSTEM
`
`CONTROL
`
`I/O BUS
`
`86
`
`88
`
`88
`
`88
`
`I/O CONT.
`
`I/O CONT,
`
`I/O CONT.
`
`EXTERNAL
`of
`
`DATABASE
`
`NETWORK
`INTERFE
`
`90
`
`92
`
`94
`
`

`

`1
`METHOD AND APPARATUS FOR UPDATING
`ADDRESS LSTS FOR A PACKET FILTER
`PROCESSOR
`
`FIELD OF THE INVENTION
`The invention relates to packet filters in general. More
`particularly, the invention relates to a method and apparatus
`for filtering data packets using a dedicated processor and a
`list of Source addresses Stored in high-Speed memory, as well
`as a means for periodically updating the list of Source
`addresses to ensure the list is kept current.
`BACKGROUND OF THE INVENTION
`Many companies and individual homes have access to the
`Internet, and more particularly, the World Wide Web
`(WWW). With the growing number of Internet sites, there is
`also a growing number of Sites which provide content that
`Some companies may deem inappropriate for the workplace.
`Similarly, there are many Internet Sites which provide con
`tent that parents may deem inappropriate for young children.
`Data packet filters are currently available which filter out
`data packets from certain Internet Sites. On the commercial
`Side, these filters are often implemented as part of a router
`or “firewall.” On the individual side, these filters are imple
`mented as programs which run on a personal computer and
`operate in conjunction with individual browser Software.
`Both the commercial and individual filterS operate by Storing
`lists of prohibited Source addresses, Such as Internet Proto
`col (IP) addresses, and filtering out any data packets
`received from a site with a prohibited source IP address. One
`problem with the currently available filters is that there is a
`performance degradation as the list of prohibited Source IP
`addresses grows. Another problem is the administration of
`prohibited source IP address lists. Internet sites are being
`added and changed every day, and it is very difficult to keep
`a prohibited source IP address list up to date.
`One example of a conventional data packet filter is
`described in U.S. Pat. No. 5,606,668 titled “System for
`Securing Inbound and Outbound Data Packet Flow in a
`Computer Network.” The 668 patent relates to computer
`network security and the control of information flow
`between internal and external network destinations. The
`patent broadly describes prior art packet filtering using
`access list tables. The patent is directed to a filter module
`which provides network Security by Specifying Security rules
`for network traffic and accepting or dropping data packets
`according to the Security rules. The rules are implemented in
`packet filter code which is executed by packet filter modules
`located at various locations within the network.
`The packet filter disclosed in the 668 patent, however, is
`less than Satisfactory for a number of reasons. In accordance
`with the disclosure of the 668 patent, the packet filter
`modules are embodied as “virtual machines' residing on
`existing network host computers. Thus, these filters are
`Software modules executing on existing network computers,
`and are not separate dedicated filtering processors. Further,
`this patent fails to describe a method for administering and
`updating the access list tables. In addition, the packet filter
`disclosed in the 668 patent is implemented between the data
`link layer and network layer of the International Standard
`ization Organization (ISO) protocol stack. Therefore, the
`packets must unnecessarily pass through the protocols Set
`forth for the data link layer before being filtered, which
`Slows down the processing Speed of the packet filter.
`Another example of a conventional data packet filter is
`shown in U.S. Pat. No. 5,615,340 titled “Network Interfac
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6,158,008
`
`2
`ing Apparatus and Method Using Repeater and Cascade
`Interface with Scrambling.” The 340 patent relates to
`interfacing nodes in a network. Each node is associated with
`a plurality of working ports. When a node receives an
`incoming data packet, the destination address of the data
`packet is compared against a stored address table to deter
`mine if the data packet is destined for a working port
`associated with the node. The node will only transmit the
`data packet to the node's working ports if there is a match.
`Similarly, when a node receives an outgoing data packet, the
`destination address of the data packet is compared against
`the Stored address table to determine if the data packet is
`destined for a working port associated with the node. If there
`is a match, then the node will transmit the data packet back
`to its working nodes. Otherwise, the node will transmit the
`data packet to the network. This System is not used for
`filtering unwanted data packets, but is instead used for
`network routing of data packets. Further, as with the 668
`patent, the 340 patent fails to disclose a means for updating
`the Source address list.
`From the foregoing, it can be appreciated that a Substan
`tial need exists for a high performance data packet filter
`which can work with a large number of source IP addresses.
`There is also a need for an efficient way to administer Source
`IP address lists.
`
`SUMMARY OF THE INVENTION
`One embodiment of the present invention proposes a
`method and apparatus for updating a profile of Source IP
`address lists for packet filtering devices. A Service provider
`administers a database of Source IP address lists. Each list
`may contain the IP addresses of particular types of Internet
`Sites. The Service provider keeps these lists up to date and
`periodically updates the Source IP addresses Stored in the
`random access memory of the dedicated IP filtering proces
`Sors. In this manner, end users can be assured that the Source
`IP address lists Stored in their filtering processor are up to
`date.
`With these and other advantages and features of the
`invention that will become hereinafter apparent, the nature
`of the invention may be more clearly understood by refer
`ence to the following detailed description of the invention,
`the appended claims and to the Several drawings attached
`herein.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 illustrates a network topology suitable for prac
`ticing one embodiment of the invention.
`FIG. 2 is a block diagram of a packet filter processor in
`accordance with one embodiment of the invention.
`FIG. 3 is a block flow diagram of steps for filtering data
`packets in accordance with one embodiment of the inven
`tion.
`FIG. 4 is a block diagram of a list Server in accordance
`with one embodiment of the invention.
`
`DETAILED DESCRIPTION
`Referring now in detail to the drawings wherein like parts
`are designated by like reference numerals throughout, there
`is illustrated in FIG. 1 a network topology suitable for
`practicing one embodiment of the invention. AS shown in
`FIG. 1, a first network 10 is connected to a router 12. Router
`12 is in turn connected to a packet filter processor 14. Packet
`filter processor 14 is connected to a Second network 16 and
`an end-user terminal 18.
`
`

`

`3
`Networks 10 and 16 are packet based networks, such as
`Transmission Control Protocol/Internet Protocol (TCP/IP)
`networks or X.25 networks. A packet originates from net
`work 10 with an intended destination to network 16 or
`end-user terminal 18. Both the Source and destination
`addresses are included in the packet.
`It is worthy to note that the network topology shown in
`FIG. 1 is exemplary only. The possible number of network
`configurations is virtually limitleSS, the design of which is
`well-known in the art. The present invention may work on
`any network configuration utilizing packet technology for
`transporting Voice, image or data Signals.
`The placement of packet filter processor 14 in a network
`is also variable depending on where a network designer
`would desire to control the in-flow or out-flow of packets
`between networks or network devices. In this embodiment
`of the invention, packet filter processor 14 is positioned at
`the only entry and exit point of either network 10 or 16,
`thereby controlling which packets enter either network. It
`can be appreciated, however, that packet filter processor 14
`could be placed on an individual network device, Such as a
`personal computer, thereby controlling the flow of packets
`only to the personal computer, or in any other Strategic point
`within a network.
`FIG. 2 is a block diagram of a packet filter processor in
`accordance with one embodiment of the invention. AS
`shown in FIG. 2, Local Area Network (LAN) interface (I/F)
`connectors 20 and 48 are coupled to network interface cards
`22 and 46, respectively. Connector 20 and card 22 are used
`to interface with network 10, and to accept packets origi
`nating from network 10. Connector 48 and card 46 are used
`to interface with network 16 or end-user terminal 18, and to
`accept packets originating from network 16 or terminal 18.
`Connectors 20 and 48, as well as cards 22 and 46, operate
`in accordance with principles well-known in the art.
`Further, cards 22 and 46 are designed to adhere to the
`Institute of Electrical and Electronics Engineers (IEEE)
`standard titled “Carrier Sense Multiple Access with Colli
`sion Detection (CSMA/CD) Access Method and Physical
`Layer Specifications, American National Standard ANSI/
`IEEE Standard 802.3, 1985 (“IEEE 802.3 standard”). The
`IEEE 802.3 standard defines a technique referred to as
`CSMA/CD, which is appropriate for a network having a
`buS/tree topology. It can be appreciated, however, that
`network interfaces designed to work with other medium
`access techniqueS or Standards could be used for packet filter
`processor 14, and still fall within the scope of the invention.
`Cards 22 and 44 are connected to one another, and also to
`First In First Out (FIFO) buffers 24 and 44, respectively.
`FIFO buffers 24 and 44 are used to store incoming or
`outgoing packets in memory until each packet can be
`compared and sent to networks 10 or 16.
`Packet filter processor 14 also includes several types of
`high-Speed memory. By way of example, this embodiment
`of the invention includes a 96 kilobyte (K) Programmable
`Read Only Memory (PROM) 40, a 32K Non-Volatile Ran
`dom. Access Memory (NVRAM) 42, and a Dynamic Ran
`dom. Access Memory (DRAM) bank 32. There is also a
`DRAM control 30 for DRAM bank 32.
`Each type of memory is used to Store data for packet filter
`processor 14. For example, PROM 40 is used to store an
`operating System (not shown) for packet filter processor 14.
`NVRAM 42 is used to store user defined parameters (not
`shown), and operating System parameters (not shown) used
`by the operating system stored in PROM 40. DRAM bank
`32 is used to store an address list 33 of Source IP addresses.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6,158,008
`
`4
`The heart of packet filter processor 14 is a dedicated high
`performance microprocessor 38. Any microprocessor
`capable of operating at the Speeds necessary to implement of
`the functions of the packet filter processor is appropriate.
`Examples of processors Suitable to practice the invention
`includes the INTEL family of processors, such as the
`Pentium(R), Pentium(R) Pro, and Pentium(R II microproces
`SOS.
`Packet filter processor 14 also includes a connector 34 and
`interface 36, both of which are attached to microprocessor
`38. Connector 34 and interface 36 both adhere to Electronic
`Industries Association (EIA) Standard RS-232-C titled
`“Interface Between Data Terminal Equipment and Data
`Communication Equipment Employing Serial Binary Data
`Interexchange,” October, 1969. Finally, packet filter proces
`Sor 14 includes a clock 26 and clock counter 28 to control
`the timing of packet filter processor 14.
`Packet filter processor 14 operates in accordance with the
`operating System, which is comprised of a Set of computer
`program instructions which are stored in PROM 40. Since a
`list of Source IP addresses can include a large number of
`addresses, e.g., ranging from hundreds to Several thousand,
`the processing time required to compare a Source IP address
`of an incoming packet with a list of Several thousand Source
`IP addresses is enormous, and Significantly degrades the
`performance of many conventional packet filters. According
`to the principles of the present invention, however, packet
`filter processor 14 combines the elements of a high-speed
`microprocessor, a Source IP address list Stored in high-speed
`memory, and a dedicated proprietary operating System, to
`ensure that data packets can be filtered at a high-rate of
`Speed.
`Operating System 39 is designed to control the operation
`of the microprocessor 38. More particularly, the operating
`System is designed Such that the microprocessor 38 is
`directed to look at the Source IP address of each received
`data packet to determine if the Source IP address matches
`one of the Stored Source IP addresses, and if there is a match,
`to either discard or forward the data packet depending on the
`processor configuration. Since the operating System and
`microprocessor 38 are dedicated to one task, packet filter
`processor 14 can perform the filtering process very quickly
`and efficiently. The operation of the operating System, and of
`packet filter processor 14 in general, will be described in
`more detail with reference to FIG. 3.
`Another reason packet filter processor 14 is So efficient is
`that packet filter processor 14 is implemented between the
`physical layer and data link layer of the ISO protocol Stack.
`The significance of this implementation can be better appre
`ciated in View of Some background information of network
`architectures in general.
`A network architecture defines protocols, message
`formats, and Standards to which products must conform in
`order to connect properly with the network. Architectures
`are developed by Standards organizations, common carriers,
`and computer and network vendors. Network architectures
`use a layered approach, whereby functions are organized
`into groups and assigned to Specific functional layers in the
`architecture. Network architectures define the interfaces
`between layers in a given network node and within the same
`layer in two different nodes.
`OSI provides a generalized model of System interconnec
`tion. It encompasses Seven layers: application, presentation,
`Session, transport, network, data link, and physical. A brief
`Summary for each layer is given as follows:
`1. Physical Layer. The physical layer is responsible for
`the transmission of bit Stream acroSS a particular physical
`
`

`

`S
`transmission medium. It involves a connection between two
`machines that allows electrical signals to be exchanged
`between them.
`2. Data Link Layer. The data link layer is responsible for
`providing reliable data transmission from one node to
`another and for Shielding higher layers form any concerns
`about the physical transmission medium. It is concerned
`with the error free transmission of frames of data.
`3. Network Layer. The network layer is concerned with
`routing data from one network node to another. It is respon
`Sible for establishing, maintaining, and terminating the net
`work connection between two users and for transferring data
`along that connection.
`4. Transport Layer-The transport layer is responsible for
`providing data transfer between two users at an agreed on
`level of quality.
`5. Session Layer-The Session layer focuses on providing
`Services used to organize and Synchronize the dialog that
`takes place between users and to manage data eXchange.
`6. Presentation Layer-The presentation layer is respon
`Sible for the presentation of information in a way that is
`meaningful to the network users, e.g., character code
`translation, data conversion, or data compression or expan
`SO.
`7. Application Layer-The application layer provides a
`means for application processes to access the System inter
`connection facilities in order to exchange information.
`Packet filter processor 14 is implemented between the
`physical layer and data link layerS described above, in order
`to increase the Speed at which packets are filtered. The
`physical layer is responsible for data encoding and decod
`ing. Data encoding refers to translating the bits being
`transmitted into the proper electrical Signals to be sent acroSS
`the transmission medium. Data decoding translates the elec
`trical Signals received over the transmission medium into the
`bit stream those signals represent. The data link layer is
`concerned with data encapsulation/decapsulation and media
`access management. These functions, however, are not nec
`essary for identifying the Source address of the packet. For
`example, data decapsulation is the function of recognizing
`the destination address, determining if it matches the receiv
`ing Station's address, performing error checking, and remov
`ing control information that was added by the data encap
`Sulation function in the Sending Station. Therefore, by
`implementing packet filter processor 14 between the physi
`cal layer and data link layer, processor 14 can maximize the
`Speed at which it filters each packet.
`FIG. 3 illustrates a block flow diagram of steps for
`filtering data packets in accordance with one embodiment of
`the invention. The description with respect to FIG. 3 will
`assume that a packet is originating from network 10 and has
`an intended destination address that is within network 16. It
`can be appreciated, however, that the operation of packet
`filter processor 14 is identical when the packet originates
`from network 16 or terminal 18 and has an intended desti
`nation address within network 10.
`Packet filter processor 14 receives a packet at step 50.
`Connector 20 receives the packet and passes the packet to
`interface card 22 which is designed to convert the electrical
`impulses received over the physical transmission media into
`packets conforming to the standards set forth in IEEE 802.3.
`The packet is stored in FIFO 24.
`Processor 38 reads the source IP address for the packet at
`step 52, and compares the source IP address with list 33,
`which is stored in DRAM band 32, at step 54. List 33 is
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6,158,008
`
`6
`stored in DRAM bank 32 in order to increase the speed at
`which data from the list could be retrieved by processor 38,
`as compared to, ego, when data is Stored on Some other
`computer readable medium Such as a hard drive or floppy
`disk. Step 56 comprises a test to determine whether there is
`a match at step 54. If there is a match at step 54, then packet
`filter processor 58 records the attempt at step 58 before
`passing control to Step 60. If there is not a match at Step 54,
`then control is directly passed to step 60.
`Packet filter processor 14 determines whether the packet
`should be passed at step 60. The decision whether to pass the
`packet or not is dependent upon the mode in which processor
`14 is currently configured. Packet filter processor 14 has a
`restrictive mode and a permissive mode. Restrictive mode
`refers to a condition where a Select number of packets are to
`be passed, and all others blocked. Permissive mode is where
`all packets are to be passed except for a Select few that
`require blocking. Thus, in permissive mode, the packet is
`passed if the Source IP address for a packet does not match
`an address on list 33. If there is a match, packet filter
`processor 14 drops the packet. In restrictive mode, the
`packet is passed if the Source IP address does match an
`address from list 33, and is dropped otherwise.
`At step 60, packet filter processor 14 determines whether
`the packet should be passed depending on whether packet
`filter processor 14 has been Set to permissive mode or
`restrictive mode. If packet filter processor 14 has been Set to
`restrictive mode, and there is a match at Step 56, then the
`packet is passed at Step 62 to the destination network which
`in this embodiment of the invention is network 16 or
`terminal 18. If packet filter processor 14 has been set to
`restrictive mode, and there is not a match at Step 56, then the
`packet is dropped at Step 64. Conversely, if packet filter
`processor 14 has been Set to permissive mode, and there is
`a match at Step 56, then the packet is dropped at Step 64. If
`packet filter processor 14 has been Set to permissive mode,
`and there is not a match at Step 56, then the packet is passed
`to the destination network at step 62. In this embodiment of
`the invention, a default condition is that no feedback is given
`to the System sending the packets for Security reasons if a
`packet is dropped at Step 64. It can be appreciated, however,
`that this default condition can be changed and still fall within
`the Scope of the invention.
`In accordance with the System administration aspects of
`the invention, a Service provider administers a database of
`Source IP address lists. Each list may contain the IP
`addresses of particular types of Internet Sites. The Service
`provider keeps these lists up to data and periodically updates
`list33 stored in DRAM bank 32 of packet filter processor 14.
`In this manner, end users can be assured that the Source IP
`address lists Stored in their filtering processor are up to date.
`List 33 can be updated in at least two ways. First, list 33
`could be updated by connecting Data Terminal Equipment
`(DTE) such as an asynchronous (ASCII) terminal (or per
`Sonal computer emulating an asynchronous terminal) to
`RS-232 connector 34 of packet filter processor 14. This
`method would enhance Security when updating list 33.
`Alternatively, a network connection is formed with a
`central administrative site equipped with a list server 70,
`preferably through an Internet Service Provider (ISP) using
`a direct network connection or via RS-232 connector 34.
`List 33 is then updated from the central administrative site,
`either by a request by the list server 70 of the administrative
`Site, or on the request of packet filter processor 14. List
`server 70 is described in more detail with reference to FIG.
`4.
`
`

`

`7
`FIG. 4 is a block diagram of a list server suitable for
`practicing one embodiment of the invention. List server 70
`comprises a main memory module 72, a central processing
`unit (CPU)74, a system control module 82, a bus adapter 76,
`a list replication module 78, and a user interface module 80,
`each of which is connected to a CPU/memory bus 84 and an
`Input/Output (I/O) bus 86 via bus adapter 76. Further, list
`server 70 contains multiple I/O controllers 88, as well as an
`external memory 90, a database 92 and network interface 94,
`each of which is connected to I/O bus 86 via I/O controllers
`88.
`The overall functioning of list server 70 is controlled by
`CPU 74, which operates under the control of executed
`computer program instructions that are Stored in main
`memory 72 or external memory 90. Both main memory 72
`and external memory 90 are machine readable Storage
`devices. The difference between main memory 72 and
`external memory 90 is that CPU 74 can typically access
`information stored in main memory 72 faster than informa
`tion stored in external memory 90. Thus, for example, main
`memory 72 may be any type of machine readable Storage
`device, Such as random access memory (RAM), read only
`memory (ROM), programmable read only memory
`(PROM), erasable programmable read only memory
`(EPROM), electronically erasable programmable read only
`memory (EEPROM). External memory 90 may be any type
`of machine readable Storage device, Such as magnetic Stor
`age media (i.e., a magnetic disk), or optical Storage media
`(i.e., a CD-ROM). Further, list server 70 may contain
`various combinations of machine readable Storage devices
`through other I/O controllers, which are accessible by CPU
`74, and which are capable of Storing a combination of
`computer program instructions and data.
`CPU 74 includes any processor of sufficient processing
`power to perform the functionality found in list server 70.
`Examples of CPUs suitable to practice the invention
`includes the INTEL family of processors, such as the
`Pentium(R), Pentium(R) Pro, and Pentium(R II microproces
`SOS.
`Network interface 94 is used for communications between
`list Server 70 and a communications network, Such as the
`Public Switched Telephone Network (PSTN) or the Internet.
`Network interface 94 Supports appropriate Signaling, ringing
`functions and Voltage levels, in accordance with techniques
`well known in the art.
`I/O controllers 88 are used to control the flow of infor
`mation between list server 70 and a number of devices or
`networks such as external memory 90, database 92 and
`network interface 94. System control module 82 includes
`human user System control and operation. Bus adapter 76 is
`used for transferring data back and forth between CPU/
`memory bus 84 and I/O bus 86.
`List replication module 78 and user interface module 80
`implements the main functionality for list server 70. It is
`noted that modules 78 and 80 are shown as separate func
`tional modules in FIG. 4. It can be appreciated, however, that
`the functions performed by these modules can be further
`Separated into more modules, combined together to form
`one module, or be distributed throughout the System, and
`still fall within the scope of the invention. Further, the
`functionality of these modules may be implemented in
`hardware, Software, or a combination of hardware and
`Software, using well-known signal processing techniques.
`List server 70 operates as follows. A profile is established
`for each packet filter processor customer Subscribing to the
`list updating Service. The profile contains a copy of list 33
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6,158,008
`
`8
`for each packet filter processor. List 33 at list server 70 is
`updated with new Source IP addresses on a periodic basis.
`Similarly, old or invalid source IP addresses are removed
`from list 33 on a periodic basis.
`The updating of list 33 at list server 70 can be accom
`plished in two ways. First, the central administrator for list
`server 70 obtains new Source IP address information from
`various Sources, Such as Service providers or Search robots
`Specializing in gathering Source IP addresses by category,
`e.g., telemarketers, adult material, advertising entities, hate
`groups, and So forth. The central administrator for list Server
`70 then updates list 33 at list server 70 with the new source
`IP address information in a timely manner, e.g., within hours
`of receiving the new information. Second, the user of a
`packet filter processor can access list Server 70 via user
`interface module 80, and perform updates to list 33 at list
`server 70 directly. The user could update list server 70 in a
`variety of ways, Such as adding, deleting or modifying the
`Source IP addresses of list 33 stored in database 92 of list
`Server 70.
`Once list 33 at list server 70 is updated, list replication
`module Sends updated list 33 to each packet filter processor
`according to the profile of each packet filter processor. The
`profile for each packet filter processor contains information
`regarding when and how often list 33 at list server 70 is to
`be replicated to the packet filter processor. For example, list
`33 at list server 70 can be replicated to a packet filter
`processor on a periodic basis, Such as every day at a certain
`time, or whenever a change to list 33 at list server 70 is
`performed. In addition, a user of a packet filter processor
`may request an update of list 33, Such as when the user has
`modified list 33 at server 70, or in the event list 33 at the
`packet filter processor has become corrupted or lost.
`In addition to updating existing lists for packet filter
`processors, list server 70 has predetermined lists of source IP
`addresses by category. For example, a list of Source IP
`addresses for all Internet Sites containing adult material can
`be pre-established, and therefore readily replicated to a
`packet filter processor by a user Simply accessing the central
`administrative site and making a request. Other lists for
`telemarketing firms, non-busineSS related web sites, a com
`petitor's network devices, government web sites, and So
`forth, could also be pre-established and made available for
`a user of the p

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