Good things come to those who measure! I have been recently asked to investigate ways to reduce bandwidth utilisation of a WCF service and thought that it would not be a bad idea to share the results. The test was a relatively simple method call (search operation) performed on the client which would return ~500 objects from the server side. I tested the app using various WCF bindings and the table below contains the sizes of the payloads for the bindings I have tested. (the results have been obtained using Wireshark):
| Binding | Payload size (bytes) | Relative size |
| WS HTTP with message security | 2747082 | 100% |
| NET-TCP with message security | 2068024 | 75% |
| NET-TCP with transport level security and encryption | 393205 | 14% |
| NET-TCP with transport level security and no encryption | 392948 | 14% |
Your mileage will obviously vary, this example however illustrates that you can get substantial reduction of payload sizes by changing a couple of configuration files. This is what I call a result! :)