Client-server security threats can be divided into those affecting clients and servers. Client threats mainly arise from malicious data or code such as viruses, worms, Trojan horses, and deviant programs. Viruses can replicate themselves and spread without the user's knowledge. Servers are vulnerable to denial of service attacks which aim to overload servers and make systems unavailable. These attacks include service overloading through excessive requests and message overloading by sending large files repeatedly. Packet modification is also a threat, where incoming data packets are altered or destroyed before reaching users.