I know that Ethernet frames (data link layer) has a FCS in the trailer. I also know that transport layer protocols both have error detection checksums as well. My question is, what is the difference between Data Link and Transport layer error detection? Don't they both do the same thing? Seems kind of redundant. I appreciate any insights. Thank you.
Link layer Error Detection: A method to verify the integrity of frames when they are transmited over the media. The receiving side can verify if the received frame has been damaged on transit. If link layer detects a damaged frame, then it discards the frame and could or not ask for a retransmission. (Ethernet never asks for retransmission, it simply discards).
Transport layer Error Control: The sending side send segments that are divided on multiple packets at network layer and each packet on multiple frames at link level.
Each segment travels the network (divided as frames and packets) and is recomposed only at the receiving side.
Between the sending and receiving side could be a lot of intermediate routers. During that transit there could be problems as:
- One or more frames are discarded.
- One or more packets get lost.
- Packets lose their original order.
- A malfunctioning router modifies the data in a packet
These problems will pass undetected through the routers until they get to the error control of the transport layer on the receiving side.
This error control verifies that there wasn't problems on the underneath layers problems and asks for retransmission.
Summary: As most of the errors happen on the media, not on network layer (routers, for example) there is a little redundancy, however only Transport layer is under the obligation of asking for retransmission.