Cross-Layer Design For Cooperative Communications And Networking