3.1.1 Abstract Data Model

This section describes a conceptual model that an implementation can maintain to participate in this protocol. The described organization is provided to facilitate the explanation of protocol behavior. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

A NetBIOS name server (NBNS) maintains the following data structures:

Name record: A data structure that contains a name and the associated attributes.

Name records collection: A collection of all name records that are either registered by this NBNS server or obtained by replication.

Owner version map: A map between each NBNS owner and the record from that owner with the highest version number in the name records collection. This map determines whether the NBNS server pulls records from its partners and, if so, the range of records it obtains.

Global version counter: A 64-bit unsigned integer that tracks the version number given to the next record that is updated.

Server configuration: Parameters maintained in persistent storage include the following:

§ Refresh interval

§ Extinction interval

§ Extinction timeout

§ Verify interval

§ Process priority class

§ Number of worker threads

Browser name cache: A list of browser names that are stored in the target WINS server. When the WINS service is initialized, the cache SHOULD be empty.

The Browser name cache SHOULD be populated when the R_WinsGetBrowserNames method (section 3.1.4.18) is called for the first time, and every subsequent call to that method SHOULD return the contents of the cache. If 3 minutes or more has elapsed from the time the Browser name cache is refreshed, the WINS service SHOULD get the name records from the target WINS server database and update the cache.