Simulation of Communication Systems: Modeling, Methodology and Techniques