508 字
1 分钟
16.Error detection
错误检测:根据发送的信息,生成错误检测位,放入发送信息的头部或者尾部
例如以太网的 CRC TLS的MAC IP的checksum
几种检测位生成算法:
1.校验和 checksum
发送端将所有数据16位反码无符号相加,得到的结果取反,放入数据包中
接收端计算数据包中16位无符号数的和是否是 (x + ~ x = 0xFFFF)
若最终算出的16位无符号和是 0xFFFF,发送时不会取反,而是直接写入为 0xFFFF,避免0x0000代表无意义,此时有0xFFFF + 0xFFFF = 0x1FFFE → 高位回卷 → 0xFFFE + 1 = 0xFFFF,验证依然成立
便于生成,鲁棒性不足,用于网络层和传输层
2.循环冗余编码器 CRC
将一个N位的数据,变为C位的校验数据,保证了位的bit错误一定能检验到,校验失误率为
算法思路是多项式大除法,用消息的每一个bit作为多项式这个次数的系数(0/1),在这个多项式后补零,然后除以一个特定的生成多项式,得到的余数就是CRC
算法强度取决于生成多项式,生成代价高,鲁棒性更强,一般用于链路层,保证底层的鲁棒性
3.消息认证码 MAC 发送方与接受方共享密钥,将数据包通过密钥进行加密与解密
MAC加密算法要求在不知道密钥的情况下,只能几乎穷举进行加密和解密
MAC在所有情况下都不保证一定能够检测到错误
CRC/checksum 没有密钥。攻击者可以改消息后自己重算 CRC/checksum,接收端照样通过。所以它们只能对付随机噪声,对主动攻击提供零保护
因此MAC可以通过密钥对TLS进行保护
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
16.Error detection
https://katyusha-blog.com/posts/cs144/notes/16error-detection/ 部分信息可能已经过时
相关文章 智能推荐
1
13.UDP 服务模型:快速寄一条消息,但不替你确认收到
CS144 UDP 消息边界、首部、校验和与 DNS。
2
9.IPv4 地址、子网掩码与 CIDR
CS144 IPv4 地址、子网掩码、CIDR 与地址前缀。
3
CS144 Checkpoint 0:网络热身与字节流
CS144 CS144 初始实验:环境配置、HTTP 字节流、套接字封装、webget 与 ByteStream 实现。
4
17.有限状态机:把协议写成可检查的事件规则
CS144 有限状态机的状态、事件、动作与 TCP 连接状态。
5
21.Connection setup and teardown
CS144 TCP 三次握手、连接关闭、半关闭与 TIME-WAIT。






