The Three Elements of Defense Against Denial-of-Service Attacks