So transport layer should somehow enhance
the error check and/or correction mechanism.
actually, I would put it in the application layer. I would have the
application include some form of checksum (PGP signature, file CRC,
whatever) to ensure for itself that what was sent was what was received.
If there is no error recovery at the link layer, then an erronious
set high-order bit in a packet length field might very likely leave
input processes open listening for more data that will never come.
But I agree that redundancy is a good idea.
By the way, on the storage technology front, it seems that 3.4
terabytes will soon be pocket-sized and cost about $50 (!)
http://www.keele.ac.uk/research/cmrkeele.htm
Cheers,
James