I need to send a binary payload with metadata over an unconventional slow, low-bandwidth, jittery connection which can basically be treated like any other normal connection at and above Layer 3. I expect the binary payload to be no more than 512kb but will probably only be around 16kb. My client is running .NET Compact Framework and my server can running the normal .NET Framework.
I'm looking for a method or library to serialize and transfer objects over a stream (Specifically an SslStream or some equivalent) consecutively at randomly spaced intervals (always on connection) with a high amount of redundancy, basically message queuing. I've looked at various XML, SOAP, JSON, protobuf implementations and WCF but some aren't compatible, are too heavy, don't have high enough redundancy or have poor documentation.
I'm willing to write something myself or to port something but it would be very helpful to have something to work and get some ideas off.