A Mobile Ad Hoc Routing Protocol for Heterogeneous Wireless Networks