A Distributed and Cooperative Black Hole Node Detection and Elimination Mechanism for Ad Hoc Networks