对于带宽的测量,通常采用的办法有两种:1.通过链路传输一个已知大小的文件,统计传输文件所需要的时间。用文件大小除以时间就可以得到链路的带宽;2.通过链路传输一定量的数据,在传输的过程中每隔一个指定的时间间隔统计一下传输的数量大小。用传输的数据量大小除以时间就可以得到链路的带宽。
针对方法1,就需要快速产生一个任意大小的文件。在Linux和Windows环境下都有现成的工具可以帮助完成这项目标。
在Linux环境下的实现方法
使用dd命令:功能是复制文件,并且可以通过选项指定复制方式。比如
dd if=/dev/zero of=test.txt bs=32 count=32(源文件是/dev/zero,目标文件是test.txt,也就是需要生成的文件。复制生成文件大小的是32*32=1024字节)
在Windows环境下的实现方法
使用fsutil命令,在windows xp和win 7下应该都自带了这个命令。命令的格式是 fsutil file createnew 新文件名 文件大小。例如生成一个1K大小的文件,可以使用
fsutil file createnew test.txt 1024
可以使用dir 文件名 的方式查看生成的文件大小。操作结果如下图所示
如果用记事本打开生成的test.txt文件,记事本显示的内容为空。这是因为文件是通过二进制的方式写入的,并且二进制的内容恰好都是全零,在ASCII码中,全零代表的空。通过UltraEdit打开文件,可以看到二进制的全零内容,如下图。
参考:
Linux下dd命令的使用 http://en.wikipedia.org/wiki//dev/zero
Windows下生成任意大小的文件 http://windowsitpro.com/windows/jsi-tip-7400-how-do-i-create-sparse-file-specific-size-windows-xp-and-greater