Distributed Denial of Service Defense: Keeping Critical Services Online When Attackers Strike