诊断networking传输完整性

在使用新机器时,我发现当通过连接到特定networking基础设施的特定[离散]networking控制器接收文件时,文件被破坏。 还有其他几个同样型号和其他型号的控制器样品,我想指出问题的根源 – 不pipe它是:

  • networking控制器硬件或全家的具体实例;
  • 特定操作系统的特定版本的驱动程序,或其他版本;
  • 特定机器的另一个硬件或软件故障;
  • 另一个特定于特定networking基础设施的故障,包括坏电缆。

我正在考虑像iperf这样的跨平台软件实用程序,但同时也关注数据完整性 – 不仅仅是对吞吐量进行基准testing,而是依靠TCP校验和(这是16位算术和,不能防止任意损坏)隐式重传不能在应用程序级直接观察到。 memtest /dev/eth0种类。 不过,我还找不到这样的工具。

有什么select? 我只能想象把一个大文件和两个方向移动,然后比较它的散列与参考。 但是这种方法有几个缺陷:

  • 常见的大型文件,如某些软件分发的CD映像,可能没有广泛的位模式,可能会引发触发破坏的机会。
  • 使用现成的软件交换文件需要为下载和上传设置一个文件服务器,这在最常见的情况下(包括Windows在内的多个操作系统都需要testing时)可能是困难的。
  • 从存储在磁盘上的文件(而不是伪随机生成的)创buildnetworkingstream量受磁盘性能的限制,这可能会降低networking吞吐量,特别是在写入时。
  • 一般来说,哈希计算不能开始,直到文件完全保存到磁盘。 而且,到那个时候,文件的开始很可能从磁盘caching中被交换出来,因此再次受到磁盘性能的限制。

相比之下,一个特制的软件工具可以在检测到哈希不匹配的第一个段之后立即报告完整性故障 – 可能是几秒(兆字节)或几个小时(兆兆字节)。 然而,使用文件支持的方法,我们要么使用低延迟的小文件,以及不充分的位模式独特性,要么使用大文件,这些文件还不足以为我们提供几个小时不同的比特stream。

是否有其他(更好)的select我失踪?