An adaptive hierarchical routing protocol