在Tcp / Ip上自动完成CRC校验?

时间:2011-11-25 13:15:33

标签: c# networking tcpclient crc

我有问题要问。

我想知道,在使用TcpClient发送数据时,是否存在任何类型的CRC 检查自动工作的算法?或者我必须实现我自己的算法并重新发送数据,如果它没有正确到达远程主机?

有什么想法吗?

我最诚挚的问候......

4 个答案:

答案 0 :(得分:3)

TCP包含校验和,TCP / IP堆栈将检测损坏的数据包。因此,除非您愿意,否则您不需要自己实施任何错误检测算法。

答案 1 :(得分:3)

TCP校验和相当弱,但对于可靠的流协议,足够。通常,在数据链路层执行更强大的校验和 - 即,以太网(IIRC)使用CRC-32。

如果你真的想自己动手,here是理论和实施的详细指南。

答案 2 :(得分:3)

is a checksum in TCP。但是,正如同一篇文章所说,

  

TCP校验和是现代标准的弱检查。具有高误码率的数据链路层可能需要额外的链路纠错/检测功能。弱校验和部分通过在TCP和IP下面的第2层使用CRC或更好的完整性检查来补偿,例如在PPP或以太网帧中使用。

因此,如果您对此有所顾虑,也许添加其他检查也不会有什么坏处。

答案 3 :(得分:2)

使用TCP的全部意义在于协议中内置了错误检查。所以你不必担心这类事情。