以前看过一些内容,转贴过来,欢迎指出错误:
传输差错包括很多方面:比特差错、分组丢失、分组失序、分组重复。
OP 说的传输数据可能会出错一般是指“比特错误”,常说“TCP 是可靠的,UDP 是不可靠的”一般是指后三者,
数据链路层,CRC 校验、强校验,检查比特差错,Cut-Through 转发不校验;
网络层,Checksum 校验,弱校验,检查 IP 头部错误(不包括 IP 数据),IPv6 无此机制;
传输层,Checksum 校验,弱校验,检查 TCP 头部和 TCP 数据;
安全层,消息验证码( MAC ,如 HMAC ),强校验,检查某段消息的完整性以及作身份验证,
相关链接:
为啥 Checksum 是弱校验,CRC 是强校验(
https://www.baeldung.com/cs/crc-vs-checksum )
为什么应用层还要做数据完整性校验? - 知乎
https://www.zhihu.com/question/370717865TLDR ,
1 、未使用 TLS 协议,是否意味着传输数据可能会出错?✅
2 、使用了 TLS 协议,是否意味着传输数据不会出错?只能说更可靠,比如 HMAC 发生碰撞照样检测不出来。