Nagle should be turned off for protocols that use many small messages (over TCP / HTTP). I donβt think itβs normal to always do this.
Also note that WCF does not necessarily mean SOAP. It depends on the bindings used. The message size also depends on the encoding used. WCF is very customizable.
WCF can use, for example, JSON. So, let's say you are building a server application on WCF + JSON + REST, and the average JSON payload is small (say less than 1,500 bytes, which means ~ 1,500 characters, since JSON uses UTF-8 by default), which is probably worth it .
But if your application uses SOAP binding, and you measure that the average message size is more than 1500 bytes (which, apparently, is possible using SOAP XML data), than this is not worth it.
So, you really need to measure things before making an IMHO decision - as the guys from Azure did, maybe they did it after :-). One easy way to measure the size of HTTP messages is to use Fiddler2 , especially the statistics tabs (select the whole message, it will give you the total number of frames and the total number of bytes).
source share