Speculative Defragmentation - A Technique to Improve the Communication Software Efficiency for Gigabit Ethernet