|
|
1
2
如果你想要简短的答案而不是否定,那么就不能总是依赖它们,如果你有真正关键的数据,那么你应该自己封装数据,或者用单独的通道传输一些好的散列,比如例如SHA-256,以确认数据传输无误。 以太网CRC将捕获大多数错误,如单位错误或任何奇数个单位错误。有些错误可能不会被发现,但它极为罕见,它讨论了错误的确切概率,但它小于1/32。此外,源和目标之间的每个以太网设备都在重新计算,因此假设每个设备都正常工作,它对错误更为鲁棒。 这些剩余的错误应该被IP和TCP校验和捕获。但这些校验和计算不能检测所有错误,例如:重新排序两个字节的字或总和为零的多个错误。 在乔纳森·斯通(Jonathan Stone)、迈克尔·格林沃尔德(Michael Greenwald)、克雷格·帕特里奇(Craig Partridge)和吉姆·休斯(Jim Hughes)的《校验和和CRC在真实数据上的性能》(Performance of checksum and CRC over Real Data)中,您可以找到一些真实数据,这些数据表明,大约十亿分之一的TCP段在包含损坏数据时具有正确的校验和。
所以我要说,ISO/OSI模型中的错误检测机制在大多数应用程序中为我们提供了足够的保护,在有效和快速的同时消除了大多数错误。但是,如果您使用一些额外的哈希,那么您对错误都是最健壮的。只需从
article on hash collisions
|
|
|
AlwaysneedsHelp · 如何减少此处使用的内存量? 2 年前 |
|
|
snake123 · 滚动到不同页面的锚点,URL中没有# 2 年前 |
|
|
Jan · 密码salt是否应存储在数据库中 2 年前 |
|
|
birb · RFC-6238 TOTP实现与示例不匹配 2 年前 |
|
|
AishaWho · 请解释res=id^(id>>>32) 2 年前 |
|
|
landings · 如何散列整数的环形缓冲区? 3 年前 |