我有数据存储在本地计算机上并使用webservices定期复制。这些数据对于该程序的应用至关重要,并且与业务交易相关。
TransactionHeader JOIN TransactionDetail
所以。
我是否应该在将数据发送到Web服务时使用某种类型的CRC检查,还是由TCP协议本身处理?
编辑:只是为了清楚数据是否从客户端删除,直到服务器确认收到并且我在我的webservice中使用强类型参数但我更多地考虑“损坏”数据(尽管在所有情况下除了字符串理论上它应该失败数据类型转换)。
答案 0 :(得分:1)
通常tcp在传输数据方面做得很好,但如果这些数据对业务至关重要,那么你就不应该将数据检查到tcp,并且应该使用一个好的哈希函数
在tcp级别,所有内容都缩减为字节字符串,因此,如果您传输了一个数字,如果该数字由于错误而在传输过程中发生了更改,并且恰好仍然是另一方的数字,则意味着数据类型转换将不会抓住那个
如果您处理的主要问题是转移检查,那么crc32或其他方法可以正常工作但是如果这些哈希用于在收到并存储之后验证数据,那么应该使用像sha1这样的更好的哈希