●Capas 1
Bits sobre cables
●Capa 2
Tramas en una red local
●Capa 3
Datagramas o paquetes
CONCEPTOS DE LA CAPA DE TRANSPORTE
MOTIVACIÓN
●“Capas inferiores” ●“Detalles del mover
datos de un lugar a otro”
●“Infraestructura de la
●El destino final de los mensajes no es sólo un equipo, sino un programa de aplicación que se ejecuta en el sistema operativo de este.
● La capa de transporte es la encargada de brindarle a la capa de aplicación la calidad de servicio (QoS) requerida
●No sólo basta con tener la dirección del host, sino que se necesita identificar de alguna manera el proceso al cual se quiere enviar un mensaje.
CONCEPTOS DE LA CAPA DE TRANSPORTE
MOTIVACIÓN
CONCEPTOS DE LA CAPA DE TRANSPORTE
MOTIVACIÓN
1. Física 2. Enlace de Datos 3. Red 4.Transporte 5. Sesión 6.Presentación 7. Aplicación“Proveedora de servicio de transporte”
“SERVICIO DE TRANSPORTE”
●Punto medio entre las capas inferiores (más enfocadas al hardware de la red) y las capas superiores (capas “light” o capas de software) ●Ofrece servicios eficientes y confiables al
nivel superior (aplicación misma)
●La capa de transporte es la primera “extremo
a extremo”
●Permitir que un par de procesos en los host fuente
y destino puedan tener una conversación
●Segmentación de los datos de aplicaciones de la
capa superior
●Establecimiento de operaciones de extremo a
extremo, establecer los mecanismos que permitan transportar los mensajes entre equipos, para lo que usa dos protocolos fundamentalmente: TCP y UDP
●Envío de segmentos de un host final a otro final ●Asegurar la fiabilidad de los datos
●Proporcionar control de flujo
CONCEPTOS DE LA CAPA DE TRANSPORTE
SERVICIOS
●Control de flujo
●Direccionamiento: A nivel de puertos
●Multiplexación: consiste en que más de una aplicación pueda utilizar los servicios del protocolo TCP.
●Secuenciamiento
●Conexiones: establecimiento de una conexión y liberación de una conexión
●Control de errores: recuperación de fallas, fiabilidad
CONCEPTOS DE LA CAPA DE TRANSPORTE
ELEMENTOS
● Durante el envío de los segmentos, es posible asegurar la
integridad de los mismos.
● El Control de flujo evita el problema causado por un host
que está inundando a otro destino con más paquetes de los que el destino puede procesar. (Y así evitar que se produzca una pérdida de datos)
● Ventana Deslizante ● Inicio Lento
Los servicios de la capa de transporte permiten solicitar un transporte fiable entre destinos.
● Asegurar que los segmentos serán confirmados. ● Proporcionar retransmisión, si es necesario.
● Devolver los segmentos a su secuencia correcta en el
destino.
● Proporcionar control e impedir la congestión.
●La ventana deslizante es un método para controlar la
cantidad de información transferida de extremo a extremo.
●El tamaño de la ventana indica la cantidad de
segmentos que pueden ser enviados sin confirmación.
●Suponiendo una ventana de tamaño m, el origen puede
enviar los segmento [n...(n+m-1)] antes de recibir una confirmación. Si se recibe una confirmación para el segmento n (ACK n+1), el origen desliza los límites de la ventana a [n+1...(n+m)] y puede enviar el segmento (n+m).
CONTROL DE FLUJO
VENTANA DESLIZANTE
● El algoritmo de “Inicio Lento” “Slow-start” intenta aprovechar al
máximo el canal de comunicación y supone que la pérdida de segmentos sea debido a una posible congestión de la red.
● Se incrementa el tamaño de la ventana hasta que no se reciban
confirmaciones para algunos segmentos. Se asume que la congestión en la red es la causa de esto y se reduce el tamaño de la ventana para evitar la congestión.
● El algoritmo inicia con una crecimiento exponencial de la ventana
de congestión (n = n * 2) hasta alcanzar un límite predefinido y continua aumentando el tamaño de la ventana de manera lineal (n = n + 1).
● Cuando las confirmaciones no se reciben, el tamaño de la
ventana es reducido a la mitad y el algoritmo vuelve a empezar.
CONTROL DE FLUJO
INICIO LENTO
●Cada proceso que se desea comunicar con otro
se identifica en la pila de protocolos TCP/IP con uno o más puertos. Un puerto es un número de 16 bits, empleado por un protocolo host – a – host para identificar a que protocolo del nivel superior o programa de aplicación se deben entregar los mensajes recibidos.
●Puertos bien conocidos. Ocupan número de
puerto comprendidos en el rango de 0 a 1023.
●Los puertos con números en el rango de 1024 a
65535 no los controla IANA y en la mayor parte de los sistemas los pueden usar los programas de usuario.
● Varios procesos accediendo la red
● Varias conexiones al mismo destino o destinos diferentes
● Varias conexiones del mismo origen, a diferentes servicios, hosts
MULTIPLEXACIÓN
WEB SMTP FTP DNS
WEB
●Tanto TCP como UDP usan números de puerto (o
socket) para enviar información a las capas superiores.
●Los números de puerto se usan para mantener un
seguimiento de las distintas conversaciones que atraviesan la red al mismo tiempo, (RFC1700).
●A las conversaciones que no involucran aplicaciones
con números de puerto conocidos se les asignan números de puerto que se seleccionan al azar a partir de un intervalo específico.
●Estos números de puerto se usan como direcciones
origen y destino en el segmento TCP.
Direccionamiento capa 4
● Puertos: Noción para identificar el servicio o aplicación al
origen y destino de cada conexión.
● Bien conocidos
● 0-1023. Asignados por la IANA, usados generalmente para
servicios básicos (procesos del sistema)
● Registrados
● 1024-49151. Usados por aplicaciones como puertos origen
y registrados para aplicaciones populares
● Dinámicos/Privados
● 49152-65535. También pueden ser usados por aplicaciones
como puertos orígen.
● Socket
● Dir IP + Protocolo + Número de Puerto
MULTIPLEXACIÓN
●Tanto TCP como UDP usan números de puerto para
enviar información a las capas superiores.
● A las conversaciones que no involucran
aplicaciones con números de puerto conocidos se les asignan números de puerto que se seleccionan al azar a partir de un intervalo específico
●Estos números de puerto se usan como parte de las
direcciones origen y destino en el segmento TCP.
●Se utilizan números de secuencia distintos para cada sentido de la comunicación.
●El número inicial (aleatorio) para cada sentido se acuerda al establecer la comunicación.
●Se debe confirmar la recepción exitosa de cada segmento (o grupo de ellos).
1.Establecimiento de la conexión (Negociación en 3 pasos)
2.Transferencia de datos
3.Finalización de la conexión (Negociación en 4 pasos)
CONCEPTOS DE LA CAPA DE TRANSPORTE
● La aplicación servidor debe abrir un
socket para aceptar conexiones. Se dice que estas conexiones están “escuchando” y que esta es una inicialización pasiva de la conexión.
● “3-way Handshake” (protocolo de
acuerdo a 3 vías)
1. Inicialización activa de la conexión, envío de segmento SYN
2. Repuesta del segmento SYN original con un segmento SYN/ACK
3. Confirmación de inicialización, envio de segmento ACK
CONCEPTOS DE LA CAPA DE TRANSPORTE
CONCEPTOS DE LA CAPA DE TRANSPORTE
ESTABLECIMIENTO DE UNA CONEXIÓN
●1 El servidor escucha por la conexión
●2 Paquete de solicitud de conexión
●3 Paquete de confirmación de conexión ●4 Paquete de reconocimiento
● Se usa una negociación en cuatro pasos (four-way handshake),
terminando la conexión desde cada lado independientemente.
● Cuando uno de los dos extremos de la conexión desea parar su
"mitad" de conexión transmite un paquete FIN, que el otro extremo asentirá con un ACK. Por tanto, una desconexión típica requiere un par de segmentos FIN y ACK desde cada lado de la conexión.
● Una conexión puede estar "medio abierta" en el caso de que
uno de los lados la finalice pero el otro no.
CONCEPTOS DE LA CAPA DE TRANSPORTE
FINALIZACIÓN DE LA CONEXIÓN
CONCEPTOS DE LA CAPA DE TRANSPORTE
FINALIZACIÓN DE LA CONEXIÓN
● TCP debe poder recuperar los datos que se
corrompan, pierdan, dupliquen o se entreguen desordenados por el sistema de comunicación del entorno de internet.
● Uso de número de secuencia para cada octeto
transmitido, y exigiendo un acuse de recibo (ACK) del módulo de TCP receptor.
● Tiempo de expiración fijado, al cabo del que los
datos se retransmiten.
● En el receptor, se utilizan los números de secuencia
para ordenar y eliminar los segmentos duplicados.
● La corrupción de datos se trata añadiendo:
n Suma de comprobación
n Códigos de redundancia cíclica (CRC)
●Los protocolos de transporte se parecen a los
protocolos de enlace. Ambos manejan el control de errores, el control de flujo, la secuencia de paquetes, etc.
●En el nivel de transporte, se necesita una manera
para especificar la dirección del destino.
●Variedad de protocolos de transporte ●TCP/IP : TCP y UDP
●TCP: Proporciona servicios orientados a la conexión
●UDP: Proporciona servicios orientados a la no conexión.
●La unidad de envío o recepción de datos del protocolo TCP se conoce con el nombre de segmento TCP y la unidad de envío o recepción de datos del protocolo UDP es conocido como datagrama UDP.
●Protocolo de transporte que provee servicios orientados a la conexión
●Garantiza que los datos son entregados al destino sin errores y en el mismo orden en que se transmitieron
●Divide los mensajes salientes en segmentos
●Reensambla los mensajes en la estación destino
●Vuelve a enviar lo que no se ha recibido
●Reensambla los mensajes a partir de segmentos entrantes
●Entrega libre de errores
●Aseguramiento de la entrega: Compromiso de TCP de entregar el mensaje al destino final, o avisar al emisor que hubo un problema en la entrega del mismo.
●Entrega ordenada de los datos: Evita duplicidad en los datos
●Conexión full duplex: Punto de vista de procesos de una aplicación
●Operación extremo a extremo
Formato segmento TCP
Formato segmento TCP
Protocolos de transporte: TCP
●Puerto Origen (16): Número de puerto origen.
●Puerto Destino (16): Número de puerto destino (servicio
usado).
●Número de secuencia (32): Número de secuencia del
primer byte de datos del segmento. Si el bit de control SYN es 1, el número de secuencia es el inicial(n) y el primer byte de datos será el n+1.
●Número de reconocimiento (32): Valor del siguiente
número de secuencia que se espera recibir, si el bit de control ACK es 1.
Protocolos de transporte: TCP
●Desplazamiento de datos (4): Número de palabras de 32 bits
de la cabecera TCP. Indica dónde empiezan los datos. (Mínimo valor = 5)
●Reservado (6): Bits reservados para su uso futuro (cero). ●FLAGS Campo de control
● URG: Hace significativo el campo "Puntero urgente"
● ACK: Hace significativo el campo "Número de acuse de recibo" ● PSH (1): Función "Push": fuerza a TCP a enviar un segmento y
que éste sea entregado de inmediato a la aplicación en el otro extremo
● RST (1): Resetea la conexión.
● SYN (1): Sincroniza los números de secuencia. ● FIN (1): No hay más datos del emisor.
Protocolos de transporte: TCP
●Ventana (16): Número de bytes de datos que el receptor
esta dispuesto a recibir. Usado en segmentos ACK.
●Suma de comprobación o Checksum (24): Suma de
comprobación de errores del segmento. Se utiliza una cabecera que también incluye las direcciones IP origen y destino.
●Puntero de Urgencia (8): Apunta al primer octeto de datos
que sigue a los datos importantes. Sólo es significativo cuando el bit de control URG es 1.
●Opciones: Formadas por un único byte o por multiples
bytes, Ej. Máximo tamaño del segmento, Marca de tiempo.
●Padding: Bytes todos a cero para rellenar la cabecera TCP
●Protocolo de transporte que provee servicios orientados a la no conexión
●Basado en el intercambio simple de datagramas (sin establecer previamente una conexión)
●No hay acuse de recibo (ACK) ni control de flujo ●Usado en protocolos donde el establecimiento de
la conexión es in-necesario (DHCP, DNS, TFTP, SNMP) y en transmisión de audio y video en tiempo real.
Formato segmento UDP
●Puerto origen: Puerto del proceso que envía el
datagrama. Es el puerto al que se deben dirigir las respuestas.
●Puerto destino: Puerto destino en el host de
destino.
●Longitud: Longitud (en bytes) del datagrama UDP,
incluyendo la cabecera.
●Checksum: Campo opcional consistente en el
complemento a uno de 16 bits obtenidos con información del encabezado UDP y del encabezado IP.