
John V. answered 11/19/20
Cisco/Juniper/Microsoft Certified Network Plumber
Link level error control happens on a packet-by-packet basis on each and every link. This is implemented in hardware and is very fast. The default behavior when a corrupt packet is found, for ethernet, is to drop the packet. This saves bandwidth and processing power on every upstream device, otherwise, would have to handle the packet. Which, of course, would be a waste of precious resources. It is up to higher level error detection protocols to request a retransmission of the missing packet.
The transport checksum is within TCP and optionally UDP, and covers the TCP pseudo-header, plus the attached data segment. It's a much weaker checksum, but is crucial to in validating an end-to-end checksum. This is vital as every router in the path is taking the packet, making modifications and then transmitting it again. While good routers implement error detection and correction internally, those implementations could easily be flawed and could trivially introduce packet corruption. The end-to-end checksum is a protection against this.