skidracer: I'm more inclined (without any experience mind you) to suggest that it is better to have a constant throughput on connections than using any method that results in variable size and number of packets.
I would agree. Implementing a method to create a constant throughput on connections is where the challenge lies. TCP only guarantees the data will 'eventually' get to its destination, it says nothing about how long it will take. UDP doesnt guarantee anything, which ironically is its speed benefit as no checks are made.
I'm attempting to deal with this by 'continuously' transmitting packets of fixed size via UDP, regardless if they contain data or empty. The concept is very similar to Asynchronous Transfer Mode (ATM) Cells.
In my research, others discuss using data transmission duplication techniques as in sending two or more packets with same info in succesion. I'm considering this as well.