如果数据使用TCP校验和,有时ftp协议会产生传输错误吗?

时间:2011-01-10 23:11:00

标签: networking ftp tcp checksum crc

每隔一段时间,通过ftp下载(特别是大型)文件会产生错误。我猜这也是所有主要网站发布外部校验和及其下载的部分原因。

如果ftp通过TCP建立校验和并且如果数据传输损坏则重新发送数据,这怎么可能呢?

有人可能会说这是由于TCP协议中CRC的长度很短(我认为是16位,或者类似的东西),并且碰撞只是经常发生。但 1)为此,不仅必须存在CRC冲突,而且随机网络错误必须同时修改数据包中的CRC和数据包本身,以便CRC对新数据包有效...即使使用16位CRC,这是否可能? 2)在浏览网页上似乎没有多少错误,这也是通过TCPIP进行的。

2 个答案:

答案 0 :(得分:3)

FTP区分ASCII和BINARY数据,并可以相应地修改数据流,这是我遇到的FTP下载损坏的最常见原因。 (TCP校验和将根据修改后的数据计算,因此不会出现任何内容 在TCP级别上的问题。)

接下来,我认为最常见的是由于超时而被截断的传输 或其他网络错误。在这种情况下,TCP校验和将在本地正确,但是 部分下载的文件已损坏。

FTP协议有点防火墙不友好,因为它可能涉及重新连接的外部主机 不可预测的端口号,但通常表现为无法传输 什么都没有,而不是下载损坏。

除了ASCII与BINARY问题之外,我想不出FTP连接的原因 更容易受到转移损坏的影响。也许你只是注意到它们,因为 它们往往是二进制文件或压缩文件,需要逐位进行 完整和正确,如果没有,你得到一个很大的丑陋的错误信息。一个人不太可能注意到一个丢失的广告 在网页上,因为与广告网络的连接超时。

答案 1 :(得分:1)

16位校验和并不强大,特别是当您考虑某些FTP传输的大小时,例如软件下载。然而,在较低层有CRC等等可以补偿。

我不认为我自己本世纪的FTP下载有损坏。