So in the networking book by Kurose, we define UDP as a unreliable method because it might not detect errors and therefore transfer a corrupted packet or transfer the data without the order so its not good for important stuff like emails
then it says TCP is a reliable method because it can gurantee data transfer without corruption, and in order, but based on this topic :
Something that should be noted here, and that most people overlook completely, is the fact, that the TCP checksum is actually a very poor checksum.
so the checksum of TCP is no good at all?!
so how can TCP be a reliable method when there is a chance that it transfers a corrupted packet and the end system won't notice it? how is this even possible?
because for example i have not received an email with a corrupted message, is it even possible?
Best Answer
No checksum is 100% reliable. The more reliable the error detection, the more computational power you need. It's a tradeoff between reliability and speed/processing power.
The TCP checksum was limited by available computing power at the time. It gives you 99.9984% assurance that your data has not been corrupted by single bit errors. The developers assumed that if stricter error checking was required, it would happen at the application layer.