WCF has netTcpBinding and HttpBinding. TCP is a protocol in the transport layer. Http is a protocol in the application layer which by default uses TCP. I read that netTcpBinding is faster than HTTP. If so, why use HttpBinding at all? What are the different scenarios where you would pick HttpBinding over netTcpBinding?
On a related note, I read that TCP ports are blocked by firewalls. Why is this?
I read that netTcpBinding uses a Microsoft propriety protocol in the application layer. Is this true?