Duda en la longitud del segmento de TCP

Duda en la longitud del segmento de TCP

de Alfredo Jose Espasandin Mederos -
Número de respuestas: 1

UDP tiene un campo en el cabezal para la longitud total del segmento UDP, pero TCP sólo tiene un campo para la longitud del propio cabezal y no del segmento competo. Entonces, ¿cómo sabe la capa de transporte cuándo termina el segmento? ¿Hace "trampa" y se fija en el cabezal de IP? Y si fuera así, ¿no sería violación a la independencia de capas?

En respuesta a Alfredo Jose Espasandin Mederos

Re: Duda en la longitud del segmento de TCP

de Matias Richart -

Hola Alfredo. Estas en lo cierto.

Hay una diferencia conceptual y luego detalles de implementación.

En lo conceptual, UDP tiene un campo de largo porque maneja el concepto de "mensaje" mientra TCP como lo que maneja es un flujo de bytes tener un largo de mensaje no tiene sentido.

A nivel de implementación, la capa de red recibe el datagrama y a partir de su cabezal obtiene los datos y se los pasa a la capa de transporte junto con el tamaño de los datos que le está pasando. Por ejemplo, en la implementación del kernel de Linux los datos entre capaz se pasan a traves de un struct sk_buff que dentro tiene un campo donde están los datos en si y otro llamado len donde va el largo de los datos.

Espero haber aclarado.

Saludos