Transport Addresses ------------------- Address reservation is the process to determine which locators should be used in the discovery announcement. Which transports and addresses to be used is determined as described in :doc:`../discovery`. When a *DomainParticipant* is created, it calculates a port number and tries to reserve this port on all addresses available in *all* the transports based on the registration properties. If the port cannot be reserved on all transports, then it release the port on *all* transports and tries again. If no free port can be found the process fails and the *DomainParticipant* cannot be created. The number of locators which can be announced is limited to *only* the first *four* for each type across *all* transports available for each policy. If more than four are available of any kind, these are *ignored*. This is by design, although it may be changed in the future. The order in which the locators are read is also not known, thus the four locators which will be used are not deterministic. To ensure that *all* the desired addresses and *only* the desired address are used in a transport, follow these rules: - Make sure that no more than four unicast addresses and four multicast addresses can be returned across *all* transports for discovery traffic. - Make sure that no more than four unicast addresses and four multicast addresses can be returned across *all* transports for user traffic. - Make sure that no more than four unicast addresses and four multicast addresses can be returned across *all* transports for user-traffic, for *DataReader* and *DataWriter* specific locators, and that they do *not* duplicate any of the *DomainParticipant*’s locators.