it will be appreciated that many different approaches may be taken to reduce or eliminate the effectiveness of certain types of attacks . for example , in the tcp / ip dos attack described above , one may protect a server from such half - open connections by having a proxy or network address translator ( nat ) respond for the server and act as a middleman for connections that are established , or by using a stateless three - way handshake in which the server , rather than using local resources to track connection state information , instead embeds the connection state information into its response to an incoming tcp syn packet starting the three - way handshake . unfortunately , while the middle - man and stateless approaches minimize damage from the half - open connection attack , another way to overburden a server is to employ an “ overrun ” attack . in this attack , multiple valid connections are established with the server , after which the server is overrun with data transfer requests on the multiple valid connections , thus rendering the server incapable of adequately responding to request from legitimate clients . for example , a server typically offers many known services such as a web server , file transfer protocol ( ftp ) server , electronic mail , news , etc . many valid connections may be made , for example , to a server &# 39 ; s web service ostensibly to obtain web data , but once a connection is established , a connection is manipulated to constantly request data from the server &# 39 ; s service . such attacks may even be facilitated by directory services such as universal description , discovery and integration ( uddi ) or other directory services , which publicly disclose services offered by the server that are available to be attacked . to protect against overrun attacks , another layer of protection may be employed . fig1 illustrates , according to one embodiment , a high - level flowchart for monitoring for overrun attacks . fig1 is discussed with respect to machines illustrated in an exemplary system shown in fig2 . a monitoring device 200 , such as a firewall , a nat router , gateway , network interface card ( nic ) or network adapter of a protected server 202 , etc . may be configured to monitor 100 a network connection 204 for suspicious network communication with the server from unknown clients 206 . for example , the protected server may be in communication with a public network 208 , such as the internet , by way of the monitored network connection 204 . if 102 no suspicious activity is identified , processing loops 104 . it will be appreciated that various tasks , not illustrated , may be performed when looping . however , if 102 the monitoring device 200 detects suspicious activity , e . g ., indicia of an ongoing attack on a protected server 202 , such as incident to a dos attack , or a report of an attack on a related server ( not illustrated ), such as another server in a cluster of servers , then the monitoring device enters 106 a “ protect mode .” when in protect mode , if 108 a network connection is established by a client 206 , this triggers sending 110 a test 210 , e . g ., a “ turing test ,” to the client for evaluation by a person presumed to be operating the client ( hereafter “ operator ” 212 ). the test is designed so that completion of the test is trivial for a person but difficult if not impossible for an automated device to decipher . for example , the test could be identifying an ascii art representation of a number ( a number pictorially displayed as an arrangement of ascii characters ), determining a number hidden in a graphic image , etc . successful completion of the test validates the operator &# 39 ; s presence and hence suggests the network connection is not part of an automated attack on the protected server . if 108 a connection is not being performed , some other action , such as a wait loop or other action ( not illustrated ) may take place . if 112 a response 214 is received from the client 206 responsive to the test 210 , the response is validated 114 for correctness . if the response is incorrect , an error handler may be called 116 ; error handling details are not illustrated but may comprise repeating some number of times the illustrated sending 110 of a test and validating 114 responses . if 112 a response is not received , a timeout 118 may be employed to limit the amount of time spent waiting for a response . if 120 the wait times out , then the error handler may be called 116 . if the wait has not time out , processing continues with a test to see if 112 a response has been received . it will be appreciated various wait times may be employed to allow sufficient time for an operator to answer a particular test question . if 112 a response was received , and if 114 the response was correct , then communication between the protected server 202 and client is allowed 122 . for example , if the client had been requesting data from the protected server , such as for a data file or for the content of a web page , the data request is forwarded to the protected server for processing . if 114 the response was wrong , in the illustrated embodiment , processing ends with the error handler 114 . it will be appreciated that in an alternate embodiment , processing may loop back to again providing 110 the client 206 operator 212 with a test , where this may be the same test , or a different test . it will be further appreciated that some embodiments may allow a limited number of attempts to get the test answer correct before the client is blocked from accessing the protected server . in one embodiment , assuming the standard iso - osi 7 layer reference model ( iso standard 7498 - 1 : 1994 ), various aspects of the fig1 and 2 embodiments may be practiced at different networking layers . that is , in order for the monitoring device to monitor network connections , the monitoring device may operate at iso layer 4 ( or lower ). in contrast , in order for the client operator 212 to interact with the test 210 sent 110 by the monitoring device , the operator must use an iso layer 7 application program , e . g ., the interface of an internet browser . to facilitate this interaction , in one embodiment , the client 206 may optionally include a module 214 ( shown in dashes as it is optional ), such as an extension to the client &# 39 ; s networking services , which monitors received network data for tests 210 . assuming an appropriate protocol is known for sending and identifying received tests , the module automatically causes display of an interface in which a test answer may be entered , such as by executing code to display a new browser window containing the test and an area in which to enter an answer to the test . in this embodiment , client networking software , e . g ., internet browsers , file transfer programs , etc . need not be modified to work with a protected server so long as the test interface can be automatically displayed by the module to an operator . fig3 illustrates a data flow diagram according to an alternative embodiment to fig1 in which the client 206 does not have any special module 214 in order to respond to the test . instead , in this embodiment , the client is presumed to be communicating with the server 202 with an application capable of directly receiving and displaying the test . for example , after successfully completing the tcp three - way syn 300 / syn ack 302 / ack 304 handshake , assuming the client utilizes an internet browser , the monitoring device 200 should receive an initial http get request 306 . it will be appreciated that the get request is particularly identified for exemplary purposes only and that other data access requests are contemplated . however , rather than a protected server 202 directly receiving the get request as would conventionally be performed in a direct connection between a client 206 and the protected server , instead the monitoring device caches the get request and instead sends 308 the client the test 210 , e . g ., a turing test . since many attacks are automated in order to increase destructive effectiveness , the test 210 need only be as complicated as necessary to determine if a person is operating the client . in the illustrated embodiment , the protected server is unaware of the attempt ( s ) by the client ( s ) 206 to contact the protected server until the client has successfully sent a correct response 310 to the test 308 . if the client does not successfully answer the test , or if an automated agent gives a wrong answer to the test , the monitoring device may discard the initial request 306 without disturbing the protected server . however , if a correct response to the test is received 310 , in the illustrated embodiment , the monitoring device 200 initiates a connection with the protected server by sending 312 an initial syn packet . the protected server and monitoring device may then complete the remaining syn ack 314 and ack 316 operations of the three - way handshake to establish a connection between the monitoring device and the server . after establishing a connection between the monitoring device 200 and the protected server 202 , the monitoring device can then forward 318 the cached initial get request from the client 206 to the protected server for processing . any http response sent 320 by the protected server is received by the monitoring device and forwarded 322 to the client 206 . the illustrated embodiment presumes the monitoring device transparently operates as a middleman for communications between the client ( s ) and the protected server , e . g ., a client and protected server need not know they are communicating by way of a middleman . however , it will be appreciated by one skilled in the art that various techniques may be employed to arrange for the protected server and client to directly communicate once the client has successfully passed the test 308 . it will be further appreciated that various caching techniques may be employed to cache the initial get request , as well subsequent requests , if any , received while awaiting successful completion of the test 308 sent responsive to the initial get . in particular , since many network application programs are optimized to make multiple simultaneous connections , e . g ., internet browsers typically establish multiple tcp connections to a server for different objects of a web page , in one embodiment a “ white list ” is maintained by the monitoring device 200 to track clients 206 that have previously passed a test 210 . thus , rather than a client receiving multiple tests for each separate connection , instead , after a correct test response is received 310 , the client is added to the white list indicating the client may communicate without being challenged again . all cached requests for the client may also be processed once entry is made on the list . however , since a client may later become compromised , it will be appreciated there may be a limit on duration on the list , e . g ., the client may be removed after a certain amount of time , or when an end of communication is detected , e . g ., a protocol command signaling end of a session is seen , etc . similarly , a “ black list ” may be employed to track clients or network addresses that can never be allowed to communicate with a protected server , including known spammers , broadcast addresses , multicast addresses , non - routable addresses , and other addresses that should not be normally seen by the protected server . since the illustrated monitoring device 200 is itself susceptible to dos and other attacks , in one embodiment of the fig3 embodiment , as discussed above , the monitoring device may utilizes a stateless protocol at least with respect to the three - way handshake 300 , 302 , 304 between the monitoring device and the client 206 . by not maintaining state information for client 206 connections until the test response 310 is received , the stateless protocol may help protect resource exhaustion at the monitoring device . for a stateless protocol example , the monitoring device may use the syn ack sequence number it generates responsive 302 to the received 300 syn packet as part of the test . for example , assuming the test 210 requires interpreting an ascii art number , the ascii art may encode the responsive 302 sequence number . since the client 206 is now responsible for returning this sequence number back to the monitoring device 200 to successfully answer the test , the monitoring device need not maintain state to track the three - way handshake 300 , 302 , 304 . for security , cryptographic techniques may be employed to prevent tampering with the encoded sequence number , or insertion of a masquerading device in the communication stream between the monitoring device and the client . for example , the responsive sequence number may be computed modulo a secret key that changes randomly or otherwise in a way likely predictable only by the monitoring device . when the monitoring device receives 310 the test response , it may perform an appropriate inverse operation to recover the responsive 302 sequence number . fig4 illustrates a flowchart according to one embodiment for monitoring , such as by the fig2 monitoring device 200 , of network traffic for suspicious activity . initially packets are waited 400 on for arrival ; it will be appreciated waiting may comprise taking other actions not illustrated , or waiting may be relegated to a particular operation thread or task dedicated to waiting for network packets . it is also intended that the term “ packet ” and its variants include any technique for encapsulating digital data for transmission in accord with a particular transmission medium . when a packet 402 arrives , a test 404 is performed to determine whether a protection protocol is already in effect for establishing network connections , e . g ., whether a stateless protocol is already being used in performing the three - way tcp / ip handshake . if 404 not , the rate of activity is monitored 406 , e . g ., various activities , such as the number of incoming connections ( could indicate a dos attack ) or other network characteristic , is monitored . if 408 the amount of activity does not exceed a threshold ( which could vary from server to server and hence will be configurable by the server operator ), for example 5000 attempted connections per second , then in the illustrated embodiment , packets are processed 410 normally and processing loops back to waiting 400 for more packets . however , if 408 the amount of activity does exceed the threshold , in the illustrated embodiment , processing enters a “ safe mode ,” e . g ., a connection protection protocol such as a stateless connection protocol is enabled 412 for use in processing connection attempts ( to prevent a dos type of attack ), and a test , e . g ., a turing test , will be used responsive to certain data access requests . thus , if 414 a syn packet is received from a connecting client when the illustrated embodiment is operating in safe mode , a responsive syn ack is created 416 in accord with the stateless protocol and sent , e . g ., connection state information may be encoded in the syn ack and not retained . processing then loops to waiting 400 for more packets . if 414 a syn packet was not received , then a test is performed to determine if 418 a first ack has been received from a client . if so , then the ack is validated 420 and the illustrated embodiment is then ready to receive a data access request , such as an http request . it will be appreciated http accesses are presented for illustrative purposes only . in one embodiment , validation comprises decoding the response to a syn ack created 416 in accord with the stateless protocol . for example , connection information minimally includes at least origin and destination tcp / ip addresses and communication ports and a secret known to the server proxy , and this information can be encoded ( and possibly encrypted ) and represented as a syn ack value . validation then may comprise subtracting 1 from the received ack ( tcp / ip connection handshake requires the client to increment the syn ack by 1 ), and comparing this value against a recalculation of the encoding of the connection state and the secret . if 418 the ack is not the first ack received from a client , then a test is performed to determine if 422 the client is listed in a connection table identifying clients that already have associated established network connections between a monitoring device such as the fig2 monitoring device 200 and a protected server , e . g ., clients known to have completed a three - way handshake with the monitoring device and to have passed the test . if 422 so , then the existing connection table information is used to process the received packet . since the connection to the server is established by the nat - like device after the client has been validated , there are some fields in the packet , for example , the ack and sequence numbers , that need to be updated before the packet is sent to the server . processing then loops to waiting 400 for more packets . if 422 the client is not already in the connection table , a test is performed to determine if 426 it is in a “ white list ” identifying clients known to be trustworthy , e . g ., the test is not necessary ( it will be appreciated many trust models may be employed to determine a trustworthy client ). if 426 the client is trustworthy , then a tcp / ip three - way handshake is performed 428 between the monitoring device and the protected server ( see , e . g ., fig3 items 312 - 316 ), the connection is added to the connection table , and the clients http request is forwarded ( see e . g . fig3 items 306 , 318 ) to the protected server . processing then loops to waiting 400 for more packets . if 426 the client was not in the white list , then a test is performed to determine if 430 an http get request has been received . ( it will be appreciated that an http get request is used here only for illustrative purposes , and that other protocols may also be supported as described herein .) if so , since the client is not in the connection table , and is not known to be trustworthy , the client is sent 432 the test , e . g ., a turing test , to ensure that the client is not under the control of some automated malicious program attacking the protected server . in one embodiment , the client is sent a web page comprising a graphic image of a number ( e . g ., an ascii art representation of a number , photo of a number , etc .) or other feature to be recognized by a person , along with a form which may be filled out to indicate a response to the test . processing then loops to waiting 400 for more packets , e . g ., for a response to the test . if 430 an http get was not received , a test is performed to determine if 434 the packet corresponds to a response to the test . if 436 not , then the packet it unknown and in the illustrated embodiment it is dropped / discarded . however , it will be appreciated that other embodiments may employ other tests not illustrated before determining a packet is unknown and to be dropped . if 434 however the received packet is a test response , then a test is performed to determine if 438 the response is valid . as discussed above , validity of a response depends on the nature of the test . if the response is valid , then the connection between the monitoring device and the server is performed 428 as discussed above . fig5 and the following discussion are intended to provide a brief , general description of a suitable environment in which certain aspects of the illustrated invention may be implemented . as used herein below , the term “ machine ” is intended to broadly encompass a single machine , or a system of communicatively coupled machines or devices operating together . exemplary machines include computing devices such as personal computers , workstations , servers , portable computers , handheld devices , e . g ., personal digital assistant ( pda ), telephone , tablets , etc ., as well as transportation devices , such as private or public transportation , e . g ., automobiles , trains , cabs , etc . typically , the environment includes a machine 500 that includes a system bus 502 to which is attached processors 504 , a memory 506 , e . g ., random access memory ( ram ), read - only memory ( rom ), or other state preserving medium , storage devices 508 , a video interface 510 , and input / output interface ports 512 . the machine may be controlled , at least in part , by input from conventional input devices , such as keyboards , mice , etc ., as well as by directives received from another machine , interaction with a virtual reality ( vr ) environment , biometric feedback , or other input source or signal . the machine may include embedded controllers , such as programmable or non - programmable logic devices or arrays , application specific integrated circuits , embedded computers , smart cards , and the like . the machine may utilize one or more connections to one or more remote machines 514 , 516 , such as through a network interface 518 , modem 520 , or other communicative coupling . machines may be interconnected by way of a physical and / or logical network 522 , such as the network 208 of fig2 , an intranet , the internet , local area networks , and wide area networks . one skilled in the art will appreciated that communication with network 522 may utilize various wired and / or wireless short range or long range carriers and protocols , including radio frequency ( rf ), satellite , microwave , institute of electrical and electronics engineers ( ieee ) 802 . 11 , bluetooth , optical , infrared , cable , laser , etc . the invention may be described by reference to or in conjunction with associated data including functions , procedures , data structures , application programs , etc . which when accessed by a machine results in the machine performing tasks or defining abstract data types or low - level hardware contexts . associated data may be stored in , for example , volatile and / or non - volatile memory 506 , or in storage devices 508 and their associated storage media , including hard - drives , floppy - disks , optical storage , tapes , flash memory , memory sticks , digital video disks , biological storage , etc . associated data may be delivered over transmission environments , including network 522 , in the form of packets , serial data , parallel data , propagated signals , etc ., and may be used in a compressed or encrypted format . associated data may be used in a distributed environment , and stored locally and / or remotely for access by single or multi - processor machines . thus , for example , with respect to the illustrated embodiments , assuming machine 500 embodies the monitoring device 200 of fig2 , then remote machines 514 , 516 may be a unknown connecting clients , e . g ., fig2 client 206 . it will be appreciated that remote machines 514 , 516 may be configured like machine 500 , and therefore include many or all of the elements discussed for machine . having described and illustrated the principles of the invention with reference to illustrated embodiments , it will be recognized that the illustrated embodiments can be modified in arrangement and detail without departing from such principles . and , though the foregoing discussion has focused on particular embodiments , other configurations are contemplated . in particular , even though expressions such as “ in one embodiment ,” “ in another embodiment ,” or the like are used herein , these phrases are meant to generally reference embodiment possibilities , and are not intended to limit the invention to particular embodiment configurations . as used herein , these terms may reference the same or different embodiments that are combinable into other embodiments . consequently , in view of the wide variety of permutations to the embodiments described herein , this detailed description is intended to be illustrative only , and should not be taken as limiting the scope of the invention . what is claimed as the invention , therefore , is all such modifications as may come within the scope and spirit of the following claims and equivalents thereto .