2012-08-29 35 views
7

al aprender WCF, encontré que WCF admite HTTP, TCP, Canalizaciones con nombre y MSMQ como protocolo de transporte. Pero Http es el protocolo de capa de aplicación y utiliza TCP como protocolo de transporte. Entonces, ¿qué significa HTP como protocolo de transporte en WCF? Cuando usa TCP como capa de transporte.protocolo de transporte en WCF

Respuesta

8

Desde una perspectiva de la pila de red, que no sea TCP, todas las cosas que enumera son protocolos de capa de aplicación que se comunican a través de TCP (al menos, en cualquier sistema moderno).

En lo que concierne a WCF, nada de eso importa. Un "protocolo de transporte" en este sentido es exactamente lo que dice: es un protocolo para el transporte de información desde el punto final hasta el punto final. En este sentido, el protocolo de transporte define cosas como la estructura interna del mensaje, el mecanismo de entrega, las características adicionales disponibles, etc. Cuando se observan todos estos aspectos, los protocolos HTTP, HTTPS, MSMQ y Canalizaciones con nombre son todos diferentes entre sí. Pero bajo el capó, eventualmente todos generarán paquetes TCP. (Puede crear transportes personalizados para WCF que usen UDP pero no creo que ninguno de los integrados pueda hacerlo).

En este contexto, podría ser más apropiado llamar al transporte TCP como "raw". TCP "transporte. Utiliza un formato de mensaje binario personalizado de bajo nivel que es exclusivo de WCF y tiene una sobrecarga mucho menor que cualquiera de los otros protocolos de transporte. Técnicamente, ese formato de mensaje es un protocolo de aplicación superpuesto a TCP, pero no tiene nombre y es completamente interno para WCF, por lo que simplemente se denomina "el protocolo de transporte TCP".

+0

Gracias @Michael, pero qué protocolo está en la capa de aplicación en el enlace net.tcp. – user1426187

+0

es "el protocolo TCP binario de WCF", que no creo que tenga otro nombre oficial. AFAIK solo permitía la codificación de mensajes binarios (un formato de mensaje XML-ish compacto), pero en cuanto a la mecánica del protocolo real, no lo sé. Tendría que obtener la fuente de referencia de WCF y buscar en la clase 'NetTcpBinding' si desea saber más. –

Cuestiones relacionadas