A distributed restoration algorithm for multiple-link and node failures of transport networks