Next Week, a Series

Next week I'll be starting a series talking about the .Net Message Framing protocol. First, some background on what that is.

TCP is a stream-oriented protocol. Although senders and receivers frequently deal with a "packet" of data and although the transmitted data is broken up into packets on the wire, the packet organization is not fundamental to the delivery of the protocol. The boundaries of packets are free to be broken up and moved as data travels throughout the system. Consequently, the received and sent packet structures may be different and there is little value indicating exactly where these boundaries are.

Instead, higher level protocols that are not stream-oriented need to use some other way than packet boundaries to indicate where messages begin and end. This is typically called the framing format of the message.

As you may have guessed, .Net Message Framing is a framing format for transmitting messages used by .Net. This framing format can be used by a variety of different transports and the messages can come in a variety of different formats, but the most common combination is a TCP transport and SOAP messages. These are the defaults of the NetTcp binding. In general, the WCF bindings you see with Net in the name are the ones using this framing format, such as the NetNamedPipe binding and the NetMsmq binding.