How can service IDs be guaranteed unique?

Tim Rohaly

There are two prescribed ways to generate a service ID; they are differentiated by a four-bit field in the 128-bit service ID which identifies which of the two methods generated that ID.

The first method, version 0x4, simply uses a cryptographically strong psuedo-random number as the service ID. The algorithm is not specified. Uniqueness is guaranteed only by chance - a well-designed implementation will likely include timestamp and service name information in the seed, thus making it unlikely that two different services are assigned the same service ID.

The second method, version 0x1, uses a timestamp, ethernet MAC address, and a random number in combination. Because this second method uses unique identifiers as part of the generated service ID, it is less likely to produce a duplicate ID.