Although Checksums, CRC and MAC can’t guarantee many types of errors, but remember that “guarantee” is a strong statement, while in reality they still have great chance of detecting errors.
Moreover, in practice you tend to have multiple layers of error detection, e.g.
Layer | Method |
---|---|
Application | Own error detection |
TCP | Checksums |
IP | Checksums |
Link layer | CRC |
End-to-end check是必须的,也就是每一层之间需要进行,而不能说Eternet layer check后IP就可以略过了,因为Eternet card might introduce an error after check. So IP has to do its own end-to-end check at the network layer.
MAC, message authentication code, usually used in TLS (transport layer security).它不保证error detection, 但保证安全。坏人改了message中的bit后,很难猜出MAC是什么,即c是什么。 c = MAC(M, s) M=message, s=security code。