Explain the major differences between Denial-of-Service and Distributed Denial-of-Service Attacks? And what are some of the possible ways to prevent such an attack?