Error correction is a major issue in network transmission of data. As discussed previously, TCP/IP does error correction in a pretty anal manner. In practice, error detection in a TCP/IP stack is performed at multiple levels.



  • Each Ethernet frame carries a CRC-32 checksum. The receiver discards frames if their checksums don't match. This is basically a byte match count

  • The IPv4 header contains a header checksum of the contents of the header (excluding the checksum field). Packets with checksums that don't match are discarded.

  • TCP has a checksum of the payload, TCP header (excluding the checksum field) and source- and destination addresses of the IP header. Packets found to have incorrect checksums are discarded and eventually get retransmitted when the sender receives a triple-ack or a time-out occurs.



While the above is all overly technical, the point is that the packet stream in TCP/IP is broken up into discrete values that contain header and other information that allow the integrity of the packet stream to be quickly checked. However, when an integrity fault is discovered, re-transmission is required, not reconstruction.

Consider this sentence as a packet stream:

Many splendid cows can be seen hopping gracefully over the river.

Now let's send the samepacket stream but without a protocol of a space between each packet (word):

Manysplendidcowscanbeseenhoppinggracefullyovertheriver.

That packet stream, while readable, too longer for you to process because it was sent with the wrong protocol. Now what about using the right protolo but experiencing packet loss but with "unimportant packets"

Mny splndid cows can be seen hopping gracfully over the rver.

You can probably reconstruct that packet stream. What about the case with key packet loss:

Ma sendid cos can be seen oping gaceully over the rir.

YOu are unlikely to know what that packet stream means at all. Finally, in the case of intolerable apacket loss.

M s co ca b s hong glly ov t er.

The result is gibberish, much like this phrase in cell phone lingo:

AATK AGKWE, IMR, RUNTS