Laws are designed to be fair, but are not necessarily fairly applied. Protocols are engineered to be robust, resilient, and to some degree self-correcting, but are not immune to abuse. In addition, not only are the algorithms that describe how protocols work complicated, but the specifications that describe their inner workings often leave a little too much room for interpretation. As a result, some of the same mechanisms that permit the Internet to continue working under random stresses and failures also allow the protocols to be abused.
Denial of service defines a broad category of attacks.
By stalling or hanging these connections, the attack depletes resources on the victim's system. Though forging sequence numbers may not seem like an easy task, methods of doing this were described as far back as 1985. In fact, the algorithms used to compute sequence numbers can be easily duplicated, making it possible to create packets including sequence numbers that will fall within the valid range. So, when a targeted system is sent a request with an IP address and a valid sequence number, it responds by sending a reply to the system that the request appears to have come from. After all, it cannot reply to the system from which the request actually derived because the falsified IP address will cause the reply to be routed to the real system.