TheUpdate: In the first version of my answer, I was confusing Hamming-Code-error detection with the checksum error detection, which is used in TCP/IP protocol uses checksums for every packet. It is much more unlikely, which try to minimizethat errors stay undetected, if a checksum is used. Theoretically it should still be possible, if there are errors in packetsthe checksum part of the package and in the rest of it. But theythat is very unlikely. There are only able to detect a limited countother sources of errors per packet (only one- or two-bit-errorserror, if I recall correctly). So if you have a very unstable connectionwhich can corrupt data, the files on your disk could have errorsthough.
As mentioned in the other answer, you can detect such errors int the downloaded file by checking the checksum of the downloaded file (for example MD5SUM).
The reason for data corruption is always a defective connection or another hardware/software error (like a defective file system or hard disk), the speed of the connection is not important. But a defective connection can slow down your transfers and thus result in a slow data transfer.