【发布时间】:2009-09-12 07:52:28
【问题描述】:
我正在设计一个应用程序协议,我想知道我是否还需要在协议中包含校验和,因为 tcp/ip 已经有校验和。 你怎么看?
【问题讨论】:
标签: tcp checksum robustness
我正在设计一个应用程序协议,我想知道我是否还需要在协议中包含校验和,因为 tcp/ip 已经有校验和。 你怎么看?
【问题讨论】:
标签: tcp checksum robustness
BitTorrent 协议在 TCP 之上有大量额外的纠错和检测功能,因此协议设计者清楚地看到了它的需要。
【讨论】:
TCP 校验和非常弱,因此如果您完全担心可靠性,您可能需要一个应用程序级别。
特别是 TCP 校验和不是安全哈希,并且没有签名,所以如果您担心恶意更改,那么您需要自己添加安全性。
【讨论】:
要添加其他答案,您可能应该查看消息身份验证代码。 MAC 是一种比简单的 TCP 校验和更可靠的错误检测方法。
如果您想要更强大的东西,请查看 [HMAC][2]。 HMAC 提供错误检测和身份验证(通过共享密钥)。
如果您想要快速而肮脏的东西,为什么不使用 sha1 哈希?
【讨论】: