you could have a look at enet:
http://enet.bespin.org/it's open source and they have added a "layer" on top of UDP to make it act like TCP for the user, check the "features and architecture" side.
I'm afraid i can't help you any more then that, but there are some multiplayer professionals around here, just be patient and you might get a better answer.