A server for implementing a service and topology exchange protocol, STEP, the server comprising: a datastore; and a STEP server controller in communication with a plurality of routers, each router including a STEP client, the STEP server controller configured to: maintain a STEP repository in the datastore, wherein the information in the STEP repository is organized as a path tree database; receive, from the STEP client of each router, using the service and topology exchange protocol, service and topology state information for at least one route or service available through the router; store the received service and topology state information in the STEP repository, wherein the service and topology state information received from the routers includes a path definition identifying the router for storage of the router's service and topology state information in the path tree database; determine, for each router, whether the STEP repository includes any service and topology state information changes for the router based at least in part on the service and topology state information received from the routers; and transmit to the STEP client of each router for which there are service and topology state information changes, using the service and topology exchange protocol, only the service and topology state information changes. a datastore; and a STEP server controller in communication with a plurality of routers, each router including a STEP client, the STEP server controller configured to: maintain a STEP repository in the datastore, wherein the information in the STEP repository is organized as a path tree database; receive, from the STEP client of each router, using the service and topology exchange protocol, service and topology state information for at least one route or service available through the router; store the received service and topology state information in the STEP repository, wherein the service and topology state information received from the routers includes a path definition identifying the router for storage of the router's service and topology state information in the path tree database; determine, for each router, whether the STEP repository includes any service and topology state information changes for the router based at least in part on the service and topology state information received from the routers; and transmit to the STEP client of each router for which there are service and topology state information changes, using the service and topology exchange protocol, only the service and topology state information changes. maintain a STEP repository in the datastore, wherein the information in the STEP repository is organized as a path tree database; receive, from the STEP client of each router, using the service and topology exchange protocol, service and topology state information for at least one route or service available through the router; store the received service and topology state information in the STEP repository, wherein the service and topology state information received from the routers includes a path definition identifying the router for storage of the router's service and topology state information in the path tree database; determine, for each router, whether the STEP repository includes any service and topology state information changes for the router based at least in part on the service and topology state information received from the routers; and transmit to the STEP client of each router for which there are service and topology state information changes, using the service and topology exchange protocol, only the service and topology state information changes.