This is (probably) not a perl solution, but you might investigate using some sort of forward error correcting code, since the "cost" of retransmitting parts of the data is "high." louie