1

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

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

有人可能会争辩说,这是由于 TCP 协议中 CRC 的长度很短(我认为是 16 位,或者类似的东西),并且冲突发生得太频繁了。但是1)要做到这一点,不仅必须存在CRC冲突,而且随机网络错误必须同时修改数据包中的CRC和数据包本身,以便CRC对新数据包有效。 . 即使使用 16 bitCRC,也有那么可能吗?2)在浏览网页时似乎没有太多错误,也通过 TCPIP。

4

2 回答 2

3

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

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

FTP 协议对防火墙有点不友好,因为它可能涉及外部主机连接到不可预知的端口号,但这通常表现为根本无法传输任何东西,而不是下载损坏。

除了 ASCII 与 BINARY 问题之外,我想不出 FTP 连接更容易受到损坏传输的原因。也许您只是更多地注意到它们,因为它们往往是二进制文件或压缩文件之类的东西,需要逐位完整和正确,否则您会收到一个很大的丑陋错误消息。例如,由于与广告网络的连接超时,人们不太可能注意到网页上缺少广告。

于 2011-01-10T23:44:53.843 回答
1

16 位校验和的强度并不高,尤其是考虑到某些 FTP 传输(例如软件下载)的大小时。然而,在较低层有 CRC 等进行补偿。

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

于 2011-01-11T02:48:14.633 回答