La Capa de Transporte

El transporte es la 4ª capa del modelo OSI y la 3ª en TCP/IP. Es la primera capa que puede comunicar con su homóloga en el host de destino. Previamente, la capa de red se encarga de encontrar la ruta para que llegue a su destino la información transportada. La capa de red hace que la capa de transporte no sepa nada de los nodos intermedios.

La capa de transporte recibe datos desde las capas superiores y los divide en paquetes, estos paquetes pasan a la capa de red para su entrega. Se establece una comunicación virtual entre dos entidades de transporte. Hace frontera entre las capas de suministro de la comunicación y el usuario. Tiene que proporcionar un sistema de transporte seguro y eficiente. Mejora la calidad del servicio. Suele ser un servicio orientado a la conexión.

Parámetros de calidad

  • Controlar retardos de establecimiento de conexión.
  • Regular la velocidad de transmisión efectiva.
  • Proteger la privacidad a terceros.
  • Controlar la prioridad.
  • Implementar sistemas de tolerancia a fallos.

Las capas de transporte son independientes de la red, los servicios de esta capa resultan más estandarizados. Suele multiplicar varias conexiones de transporte en una misma conexión. Si importa la calidad se puede utilizar varias conexiones de red para una sola de transporte.

Primitivas

  • Listen: Proceso en un equipo que queda bloqueado si otro equipo intenta conectar con él.
  • Connect: Solicita conexión a otro equipo.
  • Send: Envía datos.
  • Received: Se bloquea un proceso a la espera de datos.
  • Disconnect: Se corta la conexión.

Conexión

Permite empezar una comunicación entre el origen y el destino. En redes de datagramas hay que tener cuidado con las conexiones duplicadas. Incluyendo marcas temporales en los paquetes se soluciona este problema.

Desconexión

Se inicia un temporizador y se cuentan los intentos. Si se agota se libera la conexión. En destino se verifican los datos si hay una solicitud de desconexión. Origen: al recibir el ACK se envía otro.

Control de flujo

Se considera solo los ordenadores de los extremos de la comunicación, se permite mantener muchas conexiones. En datagramas debe reenviar paquetes perdidos y en redes virtuales debe restablecer conexiones y recuperar la situación.

Internet TCP/IP

Protocolo TCP y UDP, las comunicaciones son un host que escucha y atiende las peticiones de los clientes. Los segmentos TCP o mensajes UDP encapsulan datos de la capa superior y los incluyen en el datagrama IP para el envío.

Encapsulamiento

Tengo unos datos y le pongo una etiqueta (cabecera de un protocolo) incluyendo dentro un segmento más grande y así permitir su funcionamiento.

UDP

Protocolo que no confirma la entrega, no garantiza la entrega en orden o gestiona la duplicación de mensajes. Ofrece un transporte rápido, pero no fiable. No orientado a la conexión.

  • Puerto origen: Opcional, indica el puerto emisor y se asume puerto a contestar.
  • Puerto destino: Asociado a una IP.
  • Longitud: Longitud en octetos.
  • Checksum: Control de errores.

Útil para un intercambio rápido de mensajes. Consultas DNS, aplicaciones a tiempo real. Mensaje no importa pierda alguno. Medio altamente fiable (LAN), aplicaciones TFTP, DNS, RPC, SNMP. Puertos: modo de identificar el proceso. 53 DNS, 69 TFTP, 520 RIP.

Sockets

Emisor y receptor crean “sockets” donde almacenan los datos necesarios para la comunicación: número de puerto, buffers, contador de reintentos, temporizadores. La dirección TCP o UDP está asociada a un socket.

Primitivas UDP

Operación básica: sendto para enviar, rcvfrom para recibir. Hacen falta también operaciones para crear un socket y asociarlo a un puerto (bind).

TCP

Flujo de datos confiable sobre una red no confiable. Orientado a la conexión, garantiza la entrega de datagramas IP, segmenta y ensambla los bloques de datos, asegura la entrega en orden, envía confirmación si los datos se reciben bien.

Campos de la cabecera

  • Source/Destination port (16 bits): Identifica el puerto TCP emisor/receptor.
  • Sequence (32 bits): Nº secuencia, primer bite acknowledgement, el flag ACK es 1.
  • Nº de secuencia, data offser: Nº de palabras (32 bits).

Cabecera TCP

  • Flags: ACK, URG, PSH.
  • Window (16 bits).
  • Checksum (16 bits).
  • Urgent pointer: Lo marca como urgente.
  • Padding: Bytes de relleno.

Puertos TCP/UDP

Son más completos, funciona como una única cola en TCP, existe el concepto de conexión, identificada por los extremos. Cada puerto tiene acceso compartido a varias conexiones TCP. Identifica mediante parejas IP y puertos TCP. Permite la multiplexación.

Funcionamiento TCP

Se envía datos a un grupo y cada segmento de bytes tiene su cabecera. Cuando se envía datos, TCP puede almacenar temporalmente estos datos hasta acumular una cantidad de datos suficiente. Se puede forzar el envío si es urgente.