gpt4 book ai didi

networking - 如果数据使用校验和的 TCP,ftp 协议(protocol)为什么有时会产生传输错误?

转载 作者:可可西里 更新时间:2023-11-01 02:45:47 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

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

除了 ASCII 与 BINARY 问题之外,我想不出 FTP 连接应该更容易受到损坏的传输。也许你只是更注意它们,因为它们往往是二进制文件或压缩文件之类的东西,需要逐位进行完整且正确,如果不正确,您会收到一条丑陋的错误消息。人们不太可能注意到,比如说,丢失的广告在网页上,因为与广告网络的连接超时。

关于networking - 如果数据使用校验和的 TCP,ftp 协议(protocol)为什么有时会产生传输错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4652582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com