A Novel Gnutella Application Layer Multicast Protocol for Collaborative Virtual Environments over Mobile Ad-Hoc Networks