I have two virtual machine VM1 and VM2 , which are running on ubuntu. Both VM are running ubunutu. I bridged vnet0 and vnet1 in a linux bridge on host machine. brctl addbr virbr0 brctl addif virbr0 vnet0 brctl addif virbr0 vnet1 I did a wget of 1.9G file from VM1 to VM2. it took 1 minute 43 sec at 18.6mbps to transfer the file. I used the attached program ( which is using epoll ) to read and write packets. This program will register two network interfaces ( tap77 and tap88 ) with linux stack and will read packets from corresponding file descriptor in userspace and write it in other. I bridged tap77 and vnet0 together and tap88 and vnet1 together using a openvswitch bridge. Her i added an overhead read, write system call and copy_to_user, copy_from_user copies in both directions. [ from vm1 to vm2 & vm2 to vm1 ] compared to linux bridge implementation mentioned first. when i ran wget test. It took less time. 1.9G file from VM1 to VM2. it took 1 minute 39 sec at 19.3 mbps to transfer the file. Does that mean that linux bridge is introducing a lot of delay ? i thought it should be really fast ...any clue or hint is really appreciated ? Thanks, Ratheesh