US9071661B2ExpiredUtilityA1

Data communication coordination with sequence numbers

80
Assignee: MICROSOFT CORPPriority: May 25, 2005Filed: Aug 29, 2014Granted: Jun 30, 2015
Est. expiryMay 25, 2025(expired)· nominal 20-yr term from priority
H04L 67/01H04L 63/123H04L 63/10H04L 67/42H04L 69/02H04L 67/147H04L 69/14Y02B60/33H04L 29/08072H04L 69/24G06F 17/30194H04L 67/1097H04L 69/18H04L 67/14H04L 47/10H04L 69/329H04L 67/06G06F 16/182Y02D30/50
80
PatentIndex Score
3
Cited by
444
References
20
Claims

Abstract

Described are sequence numbers for client-server communication, to control a client's use of server resources. A server grants the client credits, and the client consumes a credit for sending each command to the server. Each credit corresponds to a sequence number, with the set of sequence numbers forming a valid command window. The server enforces that for each received command, the command includes a sequence number that is within the valid command window and that the sequence number has not been used with another command. The server may also maintain a maximum window size, such that clients with credits cannot send a command with a sequence number that beyond a maximum sequence number. When incorporated into a data communication protocol, quality of service, combating denial of service, detection of message loss, division of server resources, secure message signing, and other numerous benefits result.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 establishing, by a server, a valid command window comprising at least one sequence number; 
 granting the client a maximum number of one or more blocking operation credits; 
 receiving, at the server, a file system command that consumes at least one server resource, the file system command including an associated first sequence number and an operation context value indicating that the file system command is a blocking operation; 
 determining whether the associated first sequence number is within the valid command window and whether the client has exceeded the maximum number of one or more blocking operation credits; 
 processing the file system command when it is determined that the associated sequence number is within the valid command window and the client has not exceeded the maximum number of one or more blocking operation credits; and 
 adjusting the valid command window to include an additional unused sequence number. 
 
     
     
       2. The method of  claim 1 , further comprising:
 returning data indicating the blocking operation's progress; and 
 returning an identifier for the blocking operation. 
 
     
     
       3. The method of  claim 2 , wherein adjusting comprises adjusting the valid command window to include the additional unused sequence number before the blocking operation is completed by the server. 
     
     
       4. The method of  claim 1 , wherein the blocking operation comprises a long-running operation. 
     
     
       5. The method of  claim 1 , further comprising rejecting the file system command if the client has insufficient blocking operation credits. 
     
     
       6. The method of  claim 1 , further comprising decrementing the blocking operation credits granted to the client upon processing the file system command. 
     
     
       7. The method of  claim 1 , further comprising shrinking the valid command window upon determining that the client currently has too many blocking operations in progress. 
     
     
       8. The method of  claim 1 , further comprising:
 receiving a second file system command with a second associated sequence number; 
 processing the second file system command; 
 further adjusting the valid command window only when such further adjusting will not cause the valid command window to exceed a maximum size. 
 
     
     
       9. A computer readable memory, comprising instructions that, when executed by at least one processor, cause the at least one processor to perform a method, the method comprising:
 establishing, by a server, a valid command window comprising at least one sequence number; 
 granting the client a maximum number of one or more blocking operation credits; 
 receiving, at the server, a file system command that consumes at least one server resource, the file system command including an associated first sequence number and an operation context value indicating that the file system command is a blocking operation; 
 determining whether the associated first sequence number is within the valid command window and whether the client has exceeded the maximum number of one or more blocking operation credits; 
 processing the file system command when it is determined that the associated sequence number is within the valid command window and the client has not exceeded the maximum number of one or more blocking operation credits; and 
 adjusting the valid command window to include an additional unused sequence number. 
 
     
     
       10. The computer readable memory of  claim 9 , further comprising;
 returning data indicating the blocking operation's progress; and 
 returning an identifier for the blocking operation. 
 
     
     
       11. The computer readable memory of  claim 10 , wherein adjusting comprises adjusting the valid command window to include the additional unused sequence number before the blocking operation is completed by the server. 
     
     
       12. The computer readable memory of  claim 9 , wherein the blocking operation comprises a long-running operation. 
     
     
       13. The computer readable memory of  claim 9 , the method further comprising rejecting the file system command if the client has insufficient blocking operation credits. 
     
     
       14. The computer readable memory of  claim 9 , the method further comprising decrementing the blocking operation credits granted to the client upon processing the file system command. 
     
     
       15. The computer readable memory of  claim 9 , the method further comprising shrinking the valid command window upon determining that the client currently has too many blocking operations in progress. 
     
     
       16. The computer readable memory of  claim 9 , the method further comprising:
 receiving a second file system command with a second associated sequence number; 
 processing the second file system command; 
 further adjusting the valid command window only when such further adjusting will not cause the valid command window to exceed a maximum size. 
 
     
     
       17. A system comprising:
 at least one processor; 
 a computer readable memory, operatively connected to the at least one processor and containing instructions that, when executed by the at least one processor, cause the at least one processor to perform a method, the method comprising:
 establishing, by a server, a valid command window comprising at least one sequence number; 
 granting the client a maximum number of one or more blocking operation credits; 
 receiving, at the server, a file system command that consumes at least one server resource, the file system command including an associated first sequence number and an operation context value indicating that the file system command is a blocking operation; 
 determining whether the associated first sequence number is within the valid command window and whether the client has exceeded the maximum number of one or more blocking operation credits; 
 processing the file system command when it is determined that the associated sequence number is within the valid command window and the client has not exceeded the maximum number of one or more blocking operation credits; and 
 adjusting the valid command window to include an additional unused sequence number. 
 
 
     
     
       18. The system of  claim 17 , the method further comprising:
 returning data indicating the blocking operation's progress; and 
 returning an identifier for the blocking operation. 
 
     
     
       19. The system of  claim 18 , wherein adjusting comprises adjusting the valid command window to include the additional unused sequence number before the blocking operation is completed by the server. 
     
     
       20. The system of  claim 17 , the method further comprising:
 receiving a second file system command with a second associated sequence number; 
 processing the second file system command; 
 further adjusting the valid command window only when such further adjusting will not cause the valid command window to exceed a maximum size.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.