Unless you already consider yourself really really good at designing protocols, I'd suggest using HTTP as a protocol. It's 8-bit clean, it has a lot of meta-data possible, and it's telnet-testable, handy when you're trying to figure out what went wrong.