El nivel de transporte se encarga de la entrega de datos desde un programa de aplicación situado en un dispositivo a otro programa de aplicación en otro dispositivo. Actúa como un enlace entre los protocolos de los niveles superiores y los servicios ofrecidos por los niveles inferiores, para ello el nivel de transporte es independiente de la red física. Así en una internet formada por varias redes físicas diferentes conectadas entre si, para transmitir datos desde un dispositivo en una red a otro dispositivo en otra red, la transmisión en cada red supone que los datos se encapsulan de forma diferente, incluso los datos se fraccionan, y se podrían mezclar con otros datos, sin embargo no importa que transformaciones deban realizarse, los datos deben llegar a su destino en su formato original.
11.1.- Servicios del nivel de transporte.
Los servicios del nivel de transporte son implementados por un protocolo de transporte utilizado entre dos entidades de transporte. Los servicios son similares a los ofrecidos por el nivel de enlace de datos, con la diferencia de que el nivel de transporte ofrece los servicios a lo largo de un conjunto de redes interconectadas.
Los servicios ofrecidos por los protocolos de transporte se pueden dividir en cinco amplias categorías: entrega extremo a extremo, direccionamiento, entrega fiable, control de flujo y multiplexación.
Entrega extremo a extremo
El nivel de red se encarga de la entrega extremo a extremo de paquetes individuales, pero no ve ninguna relación entre estos paquetes, incluso aunque pertenezcan al mismo mensaje. El nivel de transporte se asegura de que el mensaje entero llegue intacto, por eso la entrega extremo a extremo lo es para el mensaje entero.
Direccionamiento.
El nivel de transporte interactúa con funciones del nivel de sesión, la entrega de los datos lo es a una aplicación o tarea en el dispositivo receptor provenientes de otra tarea del dispositivo emisor, por ello la comunicación no es entre dispositivo y dispositivo sino de aplicación a aplicación. Dado que muchas aplicaciones pueden actuar en una máquina, es necesario un nivel de direccionamiento que asegure la entrega del mensaje a la aplicación adecuada. Así mientras que en el nivel de red y enlace de datos se necesita saber qué dispositivos de la red se están comunicando, el nivel de transporte necesita conocer qué protocolos de nivel superior (aplicaciones) se están comunicando.
Entrega fiable
En el nivel de transporte, la entrega fiable tiene cuatro aspectos: control de errores, control de secuencia, control de pérdidas y control de duplicación.
Control de errores. El objetivo de fiabilidad es el control de errores, los protocolos del nivel de transporte están diseñados para que la probabilidad de una entrega libre de errores sea del 100%, para ello los mecanismos se basan en la detección de errores y en la retransmisión. Si bien el control de errores del nivel de enlace de datos asegura la entrega libre de errores nodo a nodo, no lo hace extremo a extremo, pues un error ocurrido en un nodo (encaminador, puente, etc) no es detectado, por ello el nivel de transporte hace su comprobación extremo a extremo.
Control de secuencia. En el extremo emisor, el nivel de transporte es responsable de asegurar que las unidades de datos recibidas desde los niveles superiores son utilizables por los niveles inferiores, en el extremo receptor, debe asegurarse de que los distintos trozos de una transmisión son reensamblados correctamente. Para ello utiliza una serie de mecanismos tales como:
Segmentación y concatenación: cuando el tamaño recibido de la aplicación es demasiado grande para el tamaño de trama emitido por los niveles inferiores, el nivel de transporte divide en bloques más pequeños, en un proceso de segmentación. Si el tamaño es menor que el tamaño transmisible se pueden poner varias unidades de datos en una única trama a transmitir, ese proceso se denomina concatenación.
Número de secuencia: Si una unidad de datos ha sido segmentada, se añaden números de orden a cada parte para el reensamblado en el receptor, si varias unidades más pequeñas han sido concatenadas, los números de cada subunidad permiten al receptor separarlas de forma precisa en el destino. Además cada segmento transporta un campo que indica si es el segmento final de una transmisión o aún quedan más segmentos.
Control de pérdidas. El nivel de transporte se asegura de que todos los trozos de una transmisión lleguen a su destino, no sólo unos cuantos, cuando los datos han sido segmentados, algunos segmentos pueden perderse, los números de secuencia permiten identificar cualquier fragmento perdido y solicitar que sea reenviado.
Control de duplicados. El nivel de transporte debe garantizar que ningún segmento de datos llegue al receptor duplicados, al igual que los números de secuencia controlen los paquetes perdidos, también identifican los segmentos duplicados para descartarlos.
Control de flujo
El nivel de transporte es responsable del control de flujo, éste se realiza de extremo a extremo, en vez de enlace a enlace. El control de flujo en el nivel de transporte también utiliza un protocolo de ventana deslizante, que puede variar en tamaño según la ocupación del búffer. La ventana variable puede almacenar un número variable de datos. El receptor, en su reconocimiento, puede especificar el tamaño de la ventana. En la mayoría de los casos el tamaño de la ventana se basa en el tamaño de los datos que el receptor puede almacenar, en lugar del numero de tramas.
Multiplexación
Para mejorar la eficiencia de la transmisión, el nivel de transporte tiene la opción de multiplexar. La multiplexación en este nivel se lleva a cabo de dos formas: hacia arriba, es decir varias conexiones del nivel de transporte utiliza una misma conexión de red, o hacia abajo, en la que una conexión del nivel de transporte utiliza varias conexiones de red.
Multiplexación hacia arriba.
El nivel de transporte utiliza circuitos virtuales basados en los tres niveles inferiores, por ello el nivel de transporte puede enviar varias transmisiones para el mismo destino por el mismo camino todas ellas, ello significa que el ancho de banda de la transmisión es compartido por todas las transmisiones por lo que cada una de ellas tiene un ancho de banda menor que el total posible del canal, ello limita la cantidad de datos enviable por cada transmisión.
Multiplexación hacia abajo.
En esta técnica, el nivel de transporte separa una única conexión en varios caminos diferentes para mejorar el rendimiento. Esta opción es útil cuando la red subyacente es lenta o tiene baja capacidad.
11.2.- Conexión.
La entrega extremo a extremo puede llevarse a cabo de dos formas: con conexión o sin conexión. Un protocolo orientado a conexión establece un circuito virtual o camino a través de la internet entre el emisor y el receptor, todos los paquetes que pertenecen a un mismo mensaje son enviados por ese camino. El empleo de un único camino para el mensaje entero facilita el proceso de confirmación y retransmisión de tramas perdidas o dañadas, por lo que se consideran servicios fiables. La transmisión orientada a conexión consta de tres pasos: establecimiento de la conexión, transferencia de datos y terminación de la conexión.
Establecimiento de la conexión.
Antes de que un dispositivo pueda enviar datos a otro, el dispositivo que inicia la transmisión debe determinar en primer lugar la disponibilidad del otro para intercambiar datos y debe encontrar un camino en la red a través del cual enviar los datos, esta etapa se conoce como establecimiento de a conexión y requiere tres acciones que se denomina diálogo en tres partes:
El emisor que solicita la conexión envía un paquete de petición de conexión al receptor.
El receptor devuelve un paquete de confirmación al emisor.
El emisor que realiza la solicitud devuelve un paquete para confirmar la confirmación.
Terminación de la conexión.
Una vez que los datos han sido transferidos, la conexión debe ser terminada, lo que requiere también un diálogo en tres partes:
El emisor solicitante envía un paquete de desconexión.
El receptor confirma el paquete de desconexión.
El solicitante confirma el paquete de confirmación.
11.3.- El protocolo de transporte del modelo OSI
Clases de transporte.
Para evitar servicios redundantes, el modelo OSI define cinco tipos de clases de transporte:
TP0: clase simple
TP1: Clase con recuperación básica de errores
TP2: Clase con multiplexación.
TP3: Clase con multiplexación y recuperación de errores.
TP4: Clase con detección y recuperación de errores.
La clase utilizada depende del tipo de servicio requerido por los niveles superiores, y establece una correspondencia entre las peticiones y los servicios de red disponibles, así por ejemplo TP0 y TP1 se utilizan con niveles de red perfectos ( sin errores) y TP4 en redes no fiables.
Unidad de datos del protocolo de transporte (TPDU)
El formato de una unidad de datos del protocolo de transporte consta de cuatro campos:
Longitud: es el primer campo, ocupa un byte e indica el número total de bytes (excluyéndose) de la unidad de datos.
Parámetros fijos: Este campo contiene parámetros o campos de controlque normalmente están presentes en todos los paquetes del nivel de transporte. Consta de cinco partes: código (tipo de unidad de datos), referencia origen (dirección del emisor), referencia destino (dirección del receptor), número de secuencia (identificación de la unidad dentro de un mensaje fragmentado) y asignación de créditos (usado para el control de flujo, cantidad de unidades antes de una confirmación)
Parámetros variables: Contiene parámetros que no ocurren con frecuencia y se usan mayoritariamente para la gestión.
Datos: los datos de la unidad, pueden ser datos normales o datos urgentes. Los datos urgentes constan de un mensaje de alta prioridad que debe ser tratado fuera de secuencia, una petición urgente puede saltarse la cola de entrada en el receptor y ser procesada antes que los paquetes recibidos con anterioridad.
Servicios orientados a conexión y servicios orientados no orientados a conexión.
Los servicios orientados a conexión crean en primer lugar un circuito virtual entre dos entidades remotas, para ello los servicios de transporte ofrecen cuatro tipos disponibles a los niveles superiores: T-connect, T-Data, T-Expedited-Data y T-disconnect. El usuario del nivel superior utilizará el primero para establecer una conexión, las segunda y tercera para transferir datos y la última para finalizar la conexión.
Los servicios no orientados a conexión ofrecen sólo un tipo de servicio a los niveles superiores: T-unit-Data, cuya oferta es una única unidad de datos independiente para todas las transmisiones, cada unidad contiene toda la información de control de protocolo necesaria para la entrega pero no ofrece control de flujo ni entrega en secuencia.