US7872975B2ActiveUtilityA1

File server pipelining with denial of service mitigation

78
Assignee: MICROSOFT CORPPriority: Mar 26, 2007Filed: Mar 26, 2007Granted: Jan 18, 2011
Est. expiryMar 26, 2027(~0.7 yrs left)· nominal 20-yr term from priority
H04L 47/30H04L 67/125G06F 21/554H04L 47/39H04L 67/06H04L 47/28G06Q 30/04H04L 63/1458
78
PatentIndex Score
9
Cited by
15
References
18
Claims

Abstract

A method of metering bandwidth allocation on a server using credits is disclosed. The method may receive a request for data from a client, respond to the request for data and determining if the request for data for the client exceeds a current data allocation credit limit for the client. Using the round trip time, the method may calculate a connection throughput for a client and may increase the current data allocation credit limit for the client if the server has resources to spare, the client is actively using the current pipeline depth allowed and network connection latency and bandwidth indicate a deeper pipeline is necessary for saturation. The method may decrease the current data allocation credit limit for the client if the server does not have resources to spare.

Claims

exact text as granted — not AI-modified
1. A method of metering packet network bandwidth allocation using credits on a computer server in communication over an intranet or Internet packet network with a client hosted on a computer separate from the server, the method comprising:
 receiving a request for data at the server from the client computer separate from the server over an intranet or Internet packet network; 
 responding to the request for data; 
 determining if the request for data for the client exceeds a current data allocation credit limit for the client; 
 calculating a connection throughput for the client as the data correctly received via the packet network at the client divided by the time for the data to be received; 
 increasing the current data allocation credit limit for the client if:
 the server has resources to spare; and 
 the client is actively using a current pipeline depth allowed; and 
 network connection latency and bandwidth indicate a deeper pipeline is necessary for saturation; and 
 
 decreasing the current data allocation credit limit for the client if:
 the server determines insufficient specifically allocated data structures necessary to track requests and hold incoming data; and 
 informing the client about its credit limit. 
 
 
     
     
       2. The method of  claim 1 , wherein the client is actively using the current pipeline depth allowed further comprises that the connection's throughput has increased by at least a given percentage of the expected amount given the last credit increase. 
     
     
       3. The method of  claim 2 , wherein the given percentage is fifty percent. 
     
     
       4. The method of  claim 1 , wherein having resource available further comprises having allocated data structures necessary to track requests and hold incoming data. 
     
     
       5. The method of  claim 1 , wherein decreasing the current data allocation credit limit for the client further comprises taking credits away from connections with the largest number of credits. 
     
     
       6. The method of  claim 1 , wherein increasing the current data allocation credit limit for the client comprises increasing the current data allocation limit in blocks of 64 kilobytes of request data. 
     
     
       7. The method of  claim 5 , further comprising throttling incoming requests at a transport level to comply with the current credit limit. 
     
     
       8. The method of  claim 7 , further comprising if a full pipeline of a previous depth has been processed, begin failing incoming requests that exceed the new credit limit. 
     
     
       9. The method of  claim 5 , further comprising completing the data requests that are currently being processed for the affected connection as soon as possible to reduce the connection's resource usage. 
     
     
       10. The method of  claim 9 , further comprising if there is a pending change notification request for a client, immediately releasing server resources being held for that client. 
     
     
       11. The method of  claim 5 , further comprising freeing connection resources in excess of the new credit limit as they become available. 
     
     
       12. A computer readable volatile or non-volatile, removable or non-removable RAM, ROM, EEPROM, flash memory, optical disk storage including CD-ROM and digital versatile disk (DVD), magnetic cassettes, magnetic tape, or magnetic disk storage for storing computer executable instructions, comprising computer executable instructions for metering bandwidth allocation with a client using credits on a server in communication with the client over a packet network, the instruction comprising computer executable instructions for:
 determining if a request for data for the client exceeds a current data allocation credit limit for the client; 
 calculating a connection throughput for the client as the data correctly received at the client divided by the time for the data to be received; 
 increasing the current data allocation credit limit for the client if:
 the server has resources to spare; and 
 the client is actively using a current pipeline depth allowed; and 
 network connection latency and bandwidth indicate a deeper pipeline is necessary for saturation; and 
 
 decreasing the current data allocation credit limit for the client if:
 the server determines one of insufficient specifically allocated data structures necessary to track requests and hold incoming data and informing the client about its credit limit. 
 
 
     
     
       13. The computer readable volatile or non-volatile, removable or non-removable RAM, ROM, EEPROM, flash memory, optical disk storage including CD-ROM and digital versatile disk (DVD), magnetic cassettes, magnetic tape, or magnetic disk storage of  claim 12 , wherein the client is actively using the current pipeline depth allowed further comprises that the connection's throughput has increased by at least fifty percent of the expected amount given the last credit increase. 
     
     
       14. The computer readable volatile or non-volatile, removable or non-removable RAM, ROM, EEPROM, flash memory, optical disk storage including CD-ROM and digital versatile disk (DVD), magnetic cassettes, magnetic tape, or magnetic disk storage of  claim 12 , wherein decreasing the current data allocation credit limit for the client further comprises taking credits away from connections with the largest number of credits. 
     
     
       15. The computer readable volatile or non-volatile, removable or non-removable RAM, ROM, EEPROM, flash memory, optical disk storage including CD-ROM and digital versatile disk (DVD), magnetic cassettes, magnetic tape, or magnetic disk storage of  claim 12 , further comprising computer executable instructions for throttling incoming requests at a transport level to comply with the current credit limit and if a full pipeline of a previous depth has been processed, begin failing incoming requests that exceed the new credit limit. 
     
     
       16. The computer readable volatile or non-volatile, removable or non-removable RAM, ROM, EEPROM, flash memory, optical disk storage including CD-ROM and digital versatile disk (DVD), magnetic cassettes, magnetic tape, or magnetic disk storage of  claim 12 , further comprising if there is a pending change notification request for a client, computer executable instructions for immediately releasing server resources being held for that client. 
     
     
       17. A computer system comprising a processor configured according to executable computer executable instructions, a memory for storing the computer executable instructions and an input-output device, the computer executable instructions comprising instructions for:
 determining if a request for data for a client exceeds a current data allocation credit limit for the client; 
 determining if a request for data for a client exceeds a current data allocation credit limit for the client; 
 calculating a connection throughput for a client; 
 increasing a current data allocation credit limit for the client if:
 the server has resources to spare wherein having resources available further comprises sufficient memory and data structures to track requests and hold incoming data; and 
 the client is actively using the current pipeline depth allowed wherein the client is actively using the current pipeline depth allowed further comprises that the connection's throughput has increased by at least fifty percent of the expected amount given the last credit increase; and 
 network connection latency and bandwidth indicate a deeper pipeline is necessary for saturation; and 
 
 decreasing the current data allocation credit limit for the client if:
 the server does not have resources to spare. 
 
 
     
     
       18. The computer system of  claim 17 , further comprising computer executable instructions for throttling incoming requests at the transport level to comply with the current credit limit and if a full pipeline of a previous depth has been processed, begin failing incoming requests that exceed the new credit limit.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.