Heres a hint, something goes foul around block size == content size. $ cp /proc/net/route /tmp/out $ ls -l /tmp/out -rw-rw-r-- 1 ubuntu ubuntu 512 Aug 11 01:06 /tmp/out
$ outf="/tmp/out"; for exp in 1 2 3 4 5 6 7 8 9 10; do printf "bs=%-8s " "$((2**$exp))"; out=$(dd if=/proc/net/route of=$outf bs=$((2**${exp})) 2>&1) || { echo $?; break; } md5sum $outf | awk '{print $1}'; done bs=2 dd4fb0207e97b95c910d3116293a5009 bs=4 dd4fb0207e97b95c910d3116293a5009 bs=8 dd4fb0207e97b95c910d3116293a5009 bs=16 dd4fb0207e97b95c910d3116293a5009 bs=32 dd4fb0207e97b95c910d3116293a5009 bs=64 dd4fb0207e97b95c910d3116293a5009 bs=128 dd4fb0207e97b95c910d3116293a5009 bs=256 da8a6ac4fe0557bad7aa9dbc1e45dfd3 bs=512 4b3663ec7554cf91764106ea9dcc2ada bs=1024 4b3663ec7554cf91764106ea9dcc2ada
Heres a hint, something goes foul around block size == content size.
$ cp /proc/net/route /tmp/out
$ ls -l /tmp/out
-rw-rw-r-- 1 ubuntu ubuntu 512 Aug 11 01:06 /tmp/out
$ outf="/tmp/out"; for exp in 1 2 3 4 5 6 7 8 9 10; do c910d3116293a50 09 c910d3116293a50 09 c910d3116293a50 09 c910d3116293a50 09 c910d3116293a50 09 c910d3116293a50 09 c910d3116293a50 09 ad7aa9dbc1e45df d3 1764106ea9dcc2a da 1764106ea9dcc2a da
printf "bs=%-8s " "$((2**$exp))";
out=$(dd if=/proc/net/route of=$outf bs=$((2**${exp})) 2>&1) ||
{ echo $?; break; }
md5sum $outf | awk '{print $1}';
done
bs=2 dd4fb0207e97b95
bs=4 dd4fb0207e97b95
bs=8 dd4fb0207e97b95
bs=16 dd4fb0207e97b95
bs=32 dd4fb0207e97b95
bs=64 dd4fb0207e97b95
bs=128 dd4fb0207e97b95
bs=256 da8a6ac4fe0557b
bs=512 4b3663ec7554cf9
bs=1024 4b3663ec7554cf9