As a personal project i'm attempting to engineer a network time sync protocol, using C. One thing that is really fazing me is my total lack of knowledge about how my kernel will buffer my udp packets. I want to make sure that packets will send exactly when i want them to, and not be buffered to a certain block size or whatever. I also want to know if the buffer how i can ensure the division between datagrams, as i have seen to way to do this yet. I have read through a good amount of Beej's Guide to Network Programming, but i haven't found anything there to help me.
EDIT: I understand how UDP itself works. I am only asking about the properties of the kernel socket interface.