pseudo complemento como campo calcular cabecera networking tcp udp

networking - complemento - Cuál es la importancia del pseudo encabezado utilizado en UDP/TCP



complemento tcp (4)

¿Por qué el encabezado Pseudo se antepone al datagrama UDP para el cálculo de la suma de comprobación UDP? ¿Cuál es el racional detrás de esto?


Cuando se diseñaron estos protocolos, una preocupación seria de ellos era que un anfitrión recibiera un paquete pensando que era suyo cuando no lo era. Si se volteaban unos pocos bits en el encabezado IP durante el tránsito y un paquete cambiaba de rumbo (pero la suma de comprobación IP seguía siendo correcta), la pila TCP / UDP del receptor redirigido puede saber rechazar el paquete.

Aunque el pseudo encabezado rompió la separación del idioma de las capas, se consideró aceptable por la mayor confiabilidad.


Lo más cerca que obtendrá una respuesta "directamente de la boca del caballo", es de David P. Reed en el siguiente enlace.

http://www.postel.org/pipermail/end2end-interest/2005-February/004616.html

La versión corta de la respuesta es "el pseudo encabezado existe por razones históricas".

Originalmente, TCP / IP era un protocolo único monolítico (llamado simplemente TCP). Cuando decidieron dividirlo en TCP e IP (y otros), no separaron los dos completamente: las direcciones IP todavía se consideraban parte de TCP, pero simplemente se "heredaban" de la capa IP. en lugar de repetirse en el encabezado TCP. La razón por la cual la suma de comprobación TCP opera en partes del encabezado IP (incluidas las direcciones IP) es porque tenían la intención de usar criptografía para encriptar y autenticar la carga TCP, y querían que las direcciones IP y otros parámetros TCP en el pseudo encabezado protegido por el código de autenticación. Eso haría inviable que un hombre en el medio altere las direcciones de origen y destino de la IP: los enrutadores intermedios no notarían la alteración, pero el punto final TCP lo haría cuando intentara verificar la firma.

Por varias razones, ninguno de esos grandes planes criptográficos ocurrió, pero la suma de comprobación de TCP que tomó su lugar aún opera sobre el pseudo encabezado como si fuera algo útil. Sí, le da un poco de protección extra contra errores aleatorios, pero no es por eso que existe. Francamente, estaríamos mejor sin él: el acoplamiento entre TCP e IP significa que tienes que redefinir TCP cuando cambias de IP. Por lo tanto, la definición de IPv6 incluye una nueva definición para el pseudo encabezado TCP y UDP (consulte RFC 2460, s8.1). Por qué los diseñadores de IPv6 eligieron perpetuar este acoplamiento en lugar de arriesgarse a abolirlo, me supera.


"El propósito de utilizar un pseudo encabezado es verificar que el datagrama UDP haya alcanzado su destino correcto. La clave para entender el pseudocabector radica en darse cuenta de que el destino correcto consiste en una máquina específica y un puerto de protocolo específico dentro de esa máquina El propio encabezado UDP especifica solo el número de puerto de protocolo. Por lo tanto, para verificar el destino, UDP en la máquina de envío calcula una suma de verificación que cubre la dirección IP de destino así como el datagrama UDP. El pseudo encabezado no se transmite con el UDP datagrama, ni está incluido en la longitud ".

E. Comer - Internetworking con TCP / IP cuarta edición.


Desde el punto de vista TCP o UDP, el paquete no contiene direcciones IP. (IP es la capa debajo de ellos)

Por lo tanto, para hacer una suma de verificación adecuada, se incluye un "pseudo encabezado". Es "pseudo", porque no forma parte directamente del datagrama UDP. Contiene las partes más importantes del encabezado IP, es decir, la dirección de origen y destino, el número de protocolo y la longitud de los datos.

Esto es para asegurar que la suma de comprobación UDP tenga en cuenta estos campos.