fig1 a depicts a block diagram of the internet including features of the present invention . as depicted , client workstations or personal computers ( pcs ) 50 are connected through a common gateway 52 to the network 64 . communications utilize the tcp / ip suite of protocols . clients 50 request services from one or more servers 54 which are also connected to the network 64 . typical service requests include world - wide - web ( www ) page accesses , remote file transfers , electronic mail , and transaction support . for certain services , more than one server may be required , forming a service group ( 58 ), to handle the high traffic requirement . these servers may be gus located at geographically distinct locations . in any event , the existence of the multiple servers is transparent to the clients 50 . clients issue service requests based on a logical or symbolic name of the server group . this can be provided by a conventional domain name server ( dns ) which maps the logical or symbolic name into the physical or ip address of one of the server nodes 54 in the server group 58 . this is done through a mapping request from the clients to the dns . the mapping requests are thus distinct from the service requests which are issued from the clients to the servers . to reduce network traffic , this mapping request is typically not issued for each service request . instead , the result of the mapping request is cached for a time - to - live . ( ttl ) period . subsequent service requests issued during the ttl period will follow the result of the previous mapping and hence be routed to the same server node . according to the present invention , an &# 34 ; extended dns &# 34 ; 62 provides improved load balance of client 50 service requests among servers 54 in the server group 58 . fig1 b depicts a generalized network having features of the present invention . as depicted , a source ( 100 ) represents any computing node that can issue mapping and service requests , and arbitrator ( 110 ) represents any computing node that can schedule a mapping request to one of the sever nodes ( 150 ). fig1 a , based on an internet , is a special case of fig1 b wherein the arbitrator ( 140 ) corresponds to the extended dns ( 62 ). the arbitrator consists of cpu ( 115 ), memory ( 116 ) and storage devices ( 112 ). a two - tier round robin scheduler ( 148 ) is employed by the arbitrator to assign / schedule mapping requests to one of the server nodes . the scheduler is preferably implemented as computer executable code stored on a computer readable storage device ( 112 ) such as a magnetic or optical disk or other stable storage medium . as is conventional , the schedule ? is loaded into memory ( 116 ) for execution on cpu ( 115 ). those skilled in the art will appreciate that a generalization to multi - tier ( greater than two ) round robin is straightforward . the round robin scheduler ( 148 ) includes several components : an alarm / request handler ( 138 ), a mapping request handler ( 140 ), and a statistic collector ( 145 ). these components are explained in details in fig3 and 6 , respectively . several data structures , i . e ., the mapping count table ( 12 ), service count table ( 130 ), and the request ratio table ( 135 ) are also maintained . the operations on these data structures will be explained with the round robin scheduler components . the server node ( 150 ) can be any computing node that can handle service requests from the sources ( 100 ), such as providing data / object accesses , file transfers , etc . the server node ( 150 ) consists of cpu ( 155 ), memory ( 160 ) and storage devices ( 158 ). the server node executes a service request handler ( 170 ) to process the service requests as detailed in fig7 . referring again to fig1 b , let n denote the number of sources 100 and m denote the number of servers 150 . let gw ( i , j ) be the number of service requests from source 100n to server 150j in an interval of given length , i and gd ( i ) be the number of mapping requests in the same interval from the source 100n to an arbitrator 110 having features of the present invention . the service table ( 130 ) can be represented by gw (( ij ), 0 & lt ; i & lt ; n + 1 . 0 & lt ; j & lt ; m + 1 , and the mapping count table ( 125 ) can be represented by gd ( i ), 0 & lt ; i & lt ; n + 1 . then let dw ( i ) be the average number of service requests from the source 100n per mapping request . the request ratio table ( 135 ) can be represented by dw ( i ), 0 & lt ; i & lt ; n + 1 . recall that dw ( i ) was earlier referred to as the &# 34 ; hidden &# 34 ; load of each gateway in the internet context . fig2 shows an example of a logic diagram for the arbitrator 110 using a 2 - tier round robin process in accordance with the present invention . the two - tier round robin scheduler ( 148 ) partitions its sources into two groups . in the internet context , the sources become gateways 52 . the server assignment for mapping requests from the different groups are handled separately in round robin order . in other words , each source group is handled as a separate and independent round robin tier . for example , assume there are six sources a , b , c , d , e and f and three servers 1 , 2 , and 3 . furthermore , a and d are in one group ( the first tier ) and b , c , e and f are in the other group ( the 2nd tier ). the 2 - tier round robin scheme assigns / schedules mapping requests from a and d ( similar for requests from b , c , e and f ) in round robin order to the servers with no regard to the requests and assignment of the other group . assume the mapping request stream arriving at the arbitrator 110 consists of requests from a , b , e , f , a , d , b , c , e , . . . . furthermore , assume that the two - tier round robin starts the 1st tier at server 1 and 2nd tier and server 3 . then , the server assignment for the mapping request stream will be 1 , 3 , 4 , 1 , 2 , 3 , 2 , 3 , 4 , . . . . this is because the input substream belonging to the 1st tier consists of a , a , and d , i . e . the 1st , 5th and 6th elements of the request stream . these requests get assigned to server 1 , 2 and 3 , in round robin order . similarly , the input substream belonging to the 2nd tier consists of b , e , f , b , c , e , i . e . the 2nd , 3rd , 4th , 7th , 8th , and 9th elements of the request streams . these requests get assigned to server 3 , 4 , 1 , 2 , 3 , 4 , in round robin order . the 2 - tier round robin scheduler ( 148 ) maintains two indices ph and pl on the last server assignments in round robin order for the two tiers , respectively . the scheduler increments ( modulo the number of servers ) the value of ph for selecting the server for the next assignment of mapping requests from the 1st tier source group . similarly , it increments ( modulo the number of servers ) the value of pl for selecting the server for the next assignment of the requests from the 2nd tier source group . in the previous example , at the end of the processing of the stream requests , the value of ph ( for the first tier ) is 3 and the value of pl ( for the second tier ) is 4 , where the initial values before the processing are 4 and 1 , respectively . referring again to fig2 in step 205 , the parameters , ph and pl , are initialized . that is to say for the first tier , the round robin starts searching for the next server assignment after ph which is not overloaded ; and for the second tier the round robin starts searching for the next server assignment after pl which is not overloaded . one can choose the initial value for ph to be 1 and that for pl as close to one half of i . this staggers the two tiers . also a load level threshold ( th ) is initialized for determining the tier classification . as an example , th can be chosen as half of the average service requests per mapping request over all sources . a source 100 with an estimated ( hidden ) load ( i . e . dw ( i )) higher than th will be assigned to the 1st tier group and the source 100n with an estimated ( hidden ) load ( dw ( i )) less than th will be assigned to the 2nd tier group . in step 210 , a timer interval ( td ) which triggers the collection of statistics is set to t , say 5 minutes . an array w ( j ), 0 & lt ; j & lt ; n + 1 , is set to 1 , and arrays gd ( i ) and dw ( i ), 0 & lt ; i & lt ; m + 1 , are set to zero . the arbitrator 110 then repeatedly checks for input . in step 215 , upon detection of the arrival of an alarm / recovery request from one of the servers 150j , the arbitrator 110 executes the alarm / recovery request handler 138 , in step 220 . details of the alarm / recovery request handler will be described with reference to fig3 . in step 225 , if a mapping request a from source 100n ( 0 & lt ; i & lt ; n + 1 ) is detected , the arbitrator 110 invokes the mapping request handler 140 , in step 230 . details of the mapping request handler will be described with reference to fig4 . in step 235 , if the expiration of the statistic collection timer interval ( td ) is detected , the arbitrator 110 executes the statistic collector routine 145 , in step 240 . details of the statistic collector routine will be described with reference to fig6 . fig3 shows an example of the alarm / recovery request handler logic . in step 305 , the request type is checked to determine whether it is an alarm request . if it is found to be an alarm request , in step 310 , w ( j ) is set to zero to indicate that server 150j is in an overloaded state . otherwise in step 315 , a recovery request is received and , w ( j ) is set to 1 . fig4 shows an example of the mapping request handler . it determines the tier group of the source request and then performs the server assignment ( i . e . mapping name to ip address in the internet application ) using a round robin method according to the tier of the source group . in step 405 , the in mapping count table 125 gd ( i ) is incremented by 1 . in step 410 , the load ( including any hidden load ) associated with the source is used to determine its group / tier for the round robin . specifically , dw ( i ) is tested to determine which tier of the round robin the source 100n belongs to . in step 415 , if dw ( i ) is larger than the load level threshold th , it means the source belongs is to the first tier group . the &# 34 ; update &# 34 ; function ( in fig5 ) is invoked to determine the server selection ( i . e . the mapping of the name to an ip address ) where the function parameter ( p ) representing the index of the last server assignment for the tier group under consideration is set to ph . otherwise , the source belongs to the 2nd tier group and in step 420 when the function &# 34 ; update &# 34 ; is invoked to determine the server selection for the 2nd tier group , the function parameter ( p ) representing the index of the last server assignment for the 2nd tier group is set to pl . fig5 depicts an example of the update function of steps 415 and 420 . the update function is invoked with a parameter ( p ) which represents the last server assignment for the tier group of the source request . as depicted , in step 505 , the parameter p is incremented and moduloed by m . in step 510 , the state of the server 150j is tested for overloading . if w ( p ) is not equal to zero , server p is selected and the source 100n is notified of the selection , in step 515 . if in step 510 , w ( p )= 0 , step 505 is repeated to generate another candidate server . fig6 shows an example of the statistics collector . as depicted , in step 605 , the arbitrator 110 collects the number of service requests gw ( i , j ), 0 & lt ; i & lt ; n + 1 , from each server 150j , . . . 150n . this can be done by explicitly sending a message for the requested information . in step 610 , after collecting the information from all servers dw ( i ), the average number of service requests per mapping request gd ( i ) from source 100n , is calculated . in step 615 , gd ( i ) is reset to zero . finally , in step 620 , the timer interval ( td ) is reset to t . fig7 depicts an example of a logic flowchart for a server 150j processing requests in accordance with the present invention . as depicted , in step 705 , two utilization thresholds , representing overloading ( uh ) and returning to normal ( ul ), are initialized . for example , one can choose uh to be 90 percent utilization and ul to be 70 percent utilization . in step 710 , service request array gw ( i , j ), for 0 , i & lt ; m + 1 , is initialized to zero . also , a utilization timer interval ( tw ) for checking utilization is initialized to s , say 1 minute , and a state variable ( tag ) is set to zero . note that tag is set to zero when the server is determined to be overloading . server 150j then repeatedly checks for input . in step 715 , upon detection of the arrival of a service request from source 100n , gw ( i , j ) is incremented in step 720 and the service request is processed by the service request handler 170 , in step 725 . in step 730 , if a data collection request from the arbitrator 110 is detected , server 150j sends gw ( i , j ) for 0 & lt ; i & lt ; m + 1 , to the arbitrator 110 , in step 735 and sets gw ( i , j ), for 0 & lt ; i & lt ; m + 1 , to zero , in step 740 . in step 745 , if the expiration of the utilization timer interval ( tw ) is detected , the server 150j executes a check utilization logic , in step 750 . an example of the check utilization logic will be described in fig8 . fig8 depicts an example of the check utilization logic of step 750 . as depicted , in step 805 , the server state variable , ( tag ) is checked . if tag is equal to zero , in step 810 the server utilization is checked . in step 815 , if the utilization exceeds the overload threshold ( uh ), tag is set to one and in step 820 , an alarm message is sent to the arbitrator 110 . in step 840 , the utilization ( tw ) timer interval is reset to s . in step 810 , if the server utilization is less than threshold uh , step 840 is executed . in step 805 , if tag does not equal zero , in step 825 , the utilization of the server is checked . if the utilization is returning to normal , i . e ., less than threshold ul , in step 830 , tag is set to zero . in step 835 , a recovery ( to normal ) message is then sent to the arbitrator 110 . those skilled in the art will readily appreciate that various extensions to the disclosed scheme can be used . for example : the case with two tiers is described in the embodiment above . alternatively , partitioning the tiers using percentiles of the hidden load could be used . another technique is to use recursive partitioning starting with the mean , and recursively resplitting the tier having the higher load . a weighted round robin technique within each tier can be used with weights based on the capacity of each site . this would handle heterogeneous or clustered sites having different cpu mips or numbers of cpus . another extension is to stagger the round robin assignments among tiers , such that different tiers start at different sites . another extension is to use different round robin orders among the different tiers , to avoid convoy effects where the different tiers move together because of similar ttls . for instance , a pseudo random round robin order for each tier could be used . another extension is to use threshold based alarms based on the load at individual sites ; if the load at a site crosses a pre - defined threshold , the weight of the site can be reduced , or the weight can be set to zero thus eliminating the site from consideration . a second threshold can be used such that the site gets back its normal weight when the load falls below a lower threshold . various other extensions to the disclosed method can be used and are considered to be in the spirit and scope of this invention .