3.3.1.2 Algorithm for the Granting of Credits

The server MUST implement an algorithm for granting credits to the client. Each credit provides the client the capability to send a request to the server. Multiple credits allow for multiple simultaneous requests. The algorithm MUST meet the following conditions:

  • The number of credits held by the client MUST be considered as 1 when the connection is established.

  • The server MUST ensure that the number of credits held by the client is never reduced to zero. If the condition occurs, there is no way for the client to send subsequent requests for more credits.

  • The server MAY<199> grant any number of credits up to that which the client requests, or more if required by the preceding rule.

  • The server SHOULD<200> grant the client a non-zero value of credits in response to any non-zero value requested, within administratively configured limits. The server MUST grant the client at least 1 credit when responding to SMB2 NEGOTIATE.

  • The server MAY<201> vary the number of credits granted to different clients based on quality of service features, such as identity, behavior, or administrator configuration.