If there are a lot of people using the network, it can get overloaded. Also sometimes weather, power outages, and other problems can make communication hard. Routers on the Internet use something called "load balancing" to try to fix some of these problems. But still, information can be delivered out of order, get lost, or even duplicated. TCP is designed to notice all of these problems and try to fix them. This can take a while, which is why the Internet sometimes seems slow. Once the TCP receiver has finally reassembled a perfect copy of the data originally transmitted, it passes that data to the computer program that asked for it. In this way, the program does not have to know about the network, and TCP does not have to know about the program's data.