2011-01-10 48 views
1

每隔一段时间,通过ftp下载(特别是大型)文件都会产生错误。我猜这也是所有主要网站发布外部校验和以及下载的部分原因。如果数据使用校验和TCP,ftp协议怎么会产生传输错误?

如果ftp通过TCP,它有内置的校验和并重新发送数据(如果它被腐败地传输),这怎么可能?

有人可能会争辩说,这是由于TCP协议中的CRC长度很短(我认为这是16位或类似情况),而且碰撞发生的太频繁。但是 1)因为这是真的,不仅必须有CRC冲突,而且随机网络错误必须修改数据包中的CRC和数据包本身,以便CRC对新数据包有效。即使使用16 bitCRC,这是否可能? 2)浏览网页时,看起来并没有太多错误,这也经历了TCPIP。

回答

3

FTP区分ASCII和BINARY数据,并且可以相应地修改数据流,这是我遇到的受损FTP下载最常见的原因。 (该TCP校验将被计算的修改的数据,所以没有什么会出现 在TCP层有毛病。)

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

FTP协议是有点防火墙不友好的,因为它可能涉及外部主机连接回 不可预知的端口号,但是这通常体现为无法在所有转移 什么,而不是一个损坏的下载。

除了ASCII与BINARY的问题,我想不出为什么FTP连接应该更容易受到损坏的传输。也许你只是注意到它们更多,因为它们往往是像二进制文件或压缩文件那样的东西,它们需要是完全正确的,并且如果不是,你会得到一个很大的丑陋的错误信息。一个人不太可能注意到网页上丢失的广告 ,因为到广告网络的连接超时。

1

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

我不认为自己已经有一个腐败的FTP下载本世纪本人。