How does a denial-of-service attack differ from a distributed denial-of-service attack?