Cooperative Load Balancing and Dynamic Channel Allocation for Cluster-Based Mobile Ad Hoc Networks