The Internet was not designed to resist these types of attack. As a result, protecting it will be hard work, requiring modification to software running on millions of computers. But solutions are at hand. Most of the security problems on the Internet are the results of users having their passwords stolen. Instead, passwords should be eliminated entirely.
Packet switching is what makes the Internet possible.
Unfortunately, it's also what makes the Internet vulnerable to so many different kinds of attacks. The only rational way to make the network more secure is to encrypt the information contained in every packet. Strong encryption would make eavesdropping next to useless, and would render many kinds of spoofing attacks nearly impossible. It's a research operating system that never should have escaped from the lab. It shouldn't be the basis for mission-critical operations, and it shouldn't make up the backbone of the Internet or commercial Internet providers.