PROTOCOLOS DE TRANSPORTE
Servicios de transporte
Los servicios de transporte son aquellas funciones y datos que suministra el protocolo a los usuarios ( ya sean aplicaciones u otras entidades ) de la capa superior .
  • Tipo de servicio
Hay servicios orientados a conexión ( mediante datagramas generalmente ) y no orientados a conexión ( pueden ser circuitos virtuales ) . Generalmente , un servicio orientado a conexión es más seguro y proporciona detección de errores y secuencialidad ( como en capas más inferiores ) . Pero hay casos en que un servicio no orientado a conexión es más apropiado , como por ejemplo :
- Recolección de datos de entrada : no es necesaria la conexión constante y además , una pérdida de datos no es muy significativa ya que más adelante llegarán nuevos datos .
-Diseminar datos de salida : no es necesaria una conexión continua cuando sólo se le avisa a usuarios u otras entidades de ciertos sucesos .
-Petición-respuesta : cuando un servidos suministra datos pedidos por varios usuarios no es necesaria la conexión continua .
-Aplicaciones en tiempo real .
  • Calidad del servicio
La calidad del servicio es una función que el usuario de la capa de transporte puede solicitar a esta . Por ejemplo , prioridades , retardos mínimos , niveles bajos de error , etc... Estas funciones las puede solicitar el usuario final y deben ser tratadas por la capa de transporte y si no puede , se las debe solicitar a la siguiente capa ( la de internet y así hacia abajo ) .

Por ejemplo , el protocolo de transferencia de ficheros ( FTP ) requiere un gran rendimiento , el protocolo de transacción necesita un retardo bajo ( consultas en bases de datos ) , el protocolo para correo electrónico requiere niveles de prioridad , etc...

TCP implementa esta capacidad de optar por varias calidades de servicio , pero OSI optó por suministrar protocolos diferentes para diferentes tipos de tráfico .
Transferencia de datos
TCP debe suministrar modo duplex , aunque también se debe suministrar simplex y semiduplex .
  • Interfaz de usuario
Aunque no es conveniente la normalización del interfaz de usuario con el TCP ( ya que es mejor adaptarla al entorno concreto del usuario ) , conviene que la interfaz evite que el usuario sobrecargue o colapse al protocolo de transporte con datos .
  • Supervisión de la conexión
TCP se encarga ( en servicios orientados a conexión ) del establecimiento y corte de la conexión , pero sería conveniente que el usuario pudiera en cierta medida tomar las riendas de inicio y corte de conexión , siempre y cuando no se pierdan datos por interrupciones del usuario .
  • Transporte rápido
Este es un servicio que permite enviar datos urgentemente , de forma que adelante en su llegada a otros menos urgentes . TCP debería implementar este servicio además del típico de prioridades .
  • Informe de estado
TCP debe suministrar al usuario información sobre prestaciones de conexión , direcciones de red , tipo de protocolo en uso , estado de la máquina , etc...
Seguridad
TCP puede suministrar control sobre accesos , verificaciones de conexión , encriptado y desencriptado de datos , etc...
  • Mecanismos del protocolo de transporte
Servicio de red seguro con seguimiento
  • Supongamos que un servicio de red acepta bloques de datos de tamaño arbitrario y los envía con seguridad del 100% . Si esto es así , TCP es muy sencillo :
1. Direccionamiento : sea un usuario que desee mandar datos a otro pero sin establecer conexión . Para ello , el usuario especifica la dirección de destino , el identificador de usuario , puerto del usuario final ,etc... TCP toma los datos necesarios del bloque pasado por el usuario y luego , tras procesar su parte de trabajo , pasa el control y los datos a la siguiente capa .

Una pregunta que debe responderse es ¿ cómo sabe el usuario la dirección del usuario de destino ? . Bien el usuario sabe la dirección , bien la dirección está establecida de antemano y es conocida , bien utilizando un servidor de nombres o bien el destino es un servicio general que se conoce y cuando es requerido , da la dirección del destino solicitado .

2. Multiplexación : TCP puede permitir que varios usuarios la utilicen mediante varios puertos identificados . La multiplexación puede hacerse también hacia abajo , estableciendo varios puntos de contacto con la capa de red para permitir el envío de datos por varios circuitos virtuales , aumentando el rendimiento .

3. Control de flujo : el control de flujo en TCP es muy complejo ya que intervienen usuarios ( sin pronosticar su velocidad de emisión de datos ) . Para controlar el flujo , TCP del destinatario puede hacer 4 cosas : no hacer nada , en cuyo caso todos los datos que lleguen después de que se sature TCP serán descartados ( no confirmados ) y el emisor los retransmitirá ( situación muy ineficaz y poco segura ) , rechazar los segmentos del servicio de red , con lo que esta capa controlará el flujo ( ya que tiene mecanismos para ello ) haciéndole saber a la capa de red del emisor que no se aceptarán más datos ( este mecanismo es tosco ) , usar protocolo de ventana deslizante , pero en algunos tipos de redes no seguras , la capa TCP del emisor no sabe si la falta de confirmaciones es porque se han perdido o por el control de flujo y un esquema de créditos es parecido a la ventana deslizante pero las confirmaciones no implican una aceptación de nuevos segmentos .

4. Establecimiento y cierre de la conexión : un usuario informa a su TCP de que quiere establecer una conexión con otro usuario , entonces TCP manda una señal de sincronización a la capa TCP del receptor y si el receptor la admite , el TCP del receptor informa a su usuario de que hay conexión , luego manda una señal de sincronización al TCP del emisor y se pone en modo conexión . Un vez que TCP del emisor recibe la señal de TCP del receptor , se pone también en conexión establecida . Cualquiera de los dos TCP puede cortar la conexión . Este tipo de conexión es muy robusta y permite mucha libertad a ambos lados de la conexión .Para que no se pierdan datos , para poner fin a una conexión , el que solicita el fin informa al otro de que solicita final de conexión y espera que se le confirme esta solicitud , de esta forma no se perderán datos que estén en camino .
Servicios de red seguros
  • La seguridad implica que los segmentos no se pierdan y que lleguen en la secuencia correcta . En esta capa es complicado asegurar la llegada y la secuencialidad de los segmentos . Para comprender esto , veamos siete aspectos relacionados :
1. Transporte en orden : TCP numera los segmentos con el número de orden de los datos que contiene , es decir , si el primer segmento se numera con un 0 y contiene 1200 bytes , el siguiente segmento se numera como 1200 .

2. Estrategia de retransmisión : se usa una estrategia de confirmaciones positivas para que el receptor informe al emisor de la llegada correcta de un segmento ( confirmar el 4 , confirma todos los anteriores ) . Cuando no se confirma un segmento antes de que expire un temporizador , se debe retransmitir . Para fijar el temporizador se puede hacer fijo siempre con un valor , pero esto no soluciona el problema cuando hay condiciones cambiantes de tráfico en la red ; la utilización de un temporizador que se adapte a las condiciones de la red también tiene sus inconvenientes .

3. Detección de duplicados :
cuando un segmento se pierde , el emisor , al no recibir confirmación envía un duplicado , pero supongamos que lo que ocurrió no fué que se perdió sino que expiró el temporizador o se perdió la confirmación , entonces al receptor le llegan dos duplicados , por lo que debe de ser capaz de conservar uno y desechar el otro . Un problema a tener en cuenta es que la numeración de los segmentos se debe hacer módulo un número muy grande para que no se numeren dos segmentos con el mismo número y que ambos estén en la red al mismo tiempo. Un problema adicional es que haya segmentos circulando aún cuando la conexión se haya cerrado , si un instante después se abre otra vez , el receptor podría recibir estos segmentos que ya no son válidos y confundirlos con los nuevos de la nueva transmisión , y para solucionar esto , el receptor debe recordar los últimos segmentos que recibió en la última conexión .

4. Control de flujo : el tipo de control d flujo más robusto es el de créditos . Este sistema consiste en que cuando el receptor recibe un segmento , en la confirmación se incluye este segmento y todos los anteriores y además se le indica al emisor que hay disponibilidad para aceptar un número determinado de nuevos segmentos ( crédito ) . Este sistema hace que si se pierde una confirmación , la siguiente confirma a la anteriormente perdida y además , cuando un temporizador del emisor expira , éste volverá a enviar el segmento .

5. Establecimiento de la conexión :
se requiere un diálogo entre los dos sistemas para establecer la comunicación y para eso se utiliza una señal de sincronización . Hay un mecanismo para repetir señales de sincronización en caso de que estas no lleguen . Para evitar confusión en la repetición de señales de sincronismo, estas son numeradas, y además tienen un campo de confirmación de haber sido recibidas.

6. Cierre de la conexión :
puede darse la situación en que una señal de fin de conexión se anticipe a uno o varios segmentos de datos, entonces , se perderán estos segmentos; para evitar esta situación se añade un campo de último segmento a transmitir en el segmento de señalización de final de transmisión , de este modo el receptor esperará los segmentos restantes.

7. Recuperación de caídas : Puede ocurrir que uno de los sistemas falle, caso en el cual se desconectará, perdiéndose todos los datos que se contenían en su configuración. Pero el otro sistema conectado ignora que exista este problema, así que continuará enviando datos hasta que sus temporizadores terminen. Entonces se dará por concluida la desconexión.