Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EL PROTOCOLO DE CONTROL DE TRANSFERENCIA (TCP)
1. INTRODUCCIÓN
System
Ahora entraremos más en detalle respecto de la especificación de TCP; esto se hará por medio de la
explicación minuciosa de algunas secciones de la RFC 793, donde se establece dicho protocolo.
University
Fiabilidad
Control de flujo
Whitney
Multiplexamiento
Conexiones
Prioridad y seguridad”
con
Esto quiere decir que TCP brinda un servicio que permite abstraer la interfaz con el protocolo IP,
alianza
permitiendo que la aplicación que lo utilice pueda establecer comunicaciones con procesos que se
encuentren en otras máquinas de manera sencilla. Adicionalmente se menciona que esto requiere
especificar 6 aspectos principalmente (Transferencia de datos, Fiabilidad, Control de flujo,
Grancolombiano-en
Multiplexamiento, Conexiones y, por último, prioridad y seguridad).
1.1 Transferencia de datos
Revisemos algunas partes de la descripción de la transferencia de datos:
Algunas veces los usuarios necesitan estar seguros de que todos los
datos que habían entregado al módulo de TCP han sido transmitidos.
Politécnico
Como podemos ver TCP ofrece un método para forzar a que la implementación de TCP envíe todos los
datos que se encuentran almacenados en el buffer, es decir, asegura que todo lo que se ha escrito en el
socket ha viajado efectivamente por la red.
1.2 Fiabilidad
La fiabilidad o confiabilidad está enfocada a garantizar la entrega de información evitando que esta sea
System
modificada o alterada de cualquier modo durante su transporte. El método para lograrlo se describe a
continuación:
“El módulo de TCP debe poder recuperar los datos que se corrompan,
University
Nótese que el riesgo de que la información sea cambiada en tránsito se mitiga usando la suma de
control. Por otro lado, los números de secuencia solucionan múltiples inconvenientes tales como:
organizar los paquetes en el receptor, confirmarlos de manera única y eliminar los paquetes duplicados.
con
Y finalmente los ACK junto con el tiempo límite de expiración de un paquete permiten manejar la
pérdida de información en la red.
alianza
1.3 Flujo de control
Grancolombiano-en
El flujo de control implica “no ahogar” al receptor con información, es decir, permitirle especificar el
rango de datos que está dispuesto a recibir en el momento. Como es natural esta ventana se moverá a
Politécnico
medida que se reciban datos exitosamente.
1.4 Multiplexión
System
Un socket TCP está identificado por el puerto y dirección de red del “host”, asimismo una conexión está
International
determinada por el socket origen y el socket destino, es decir por una tupla (IP Origen, Puerto Origen, IP
Destino, Puerto Destino). Esto permite que el mismo socket se pueda utilizar para atender múltiples
conexiones en el caso del servidor.
1.5 Manejo de la conexión
Las conexiones TCP se abren por solicitud de los programas que utilizan el protocolo, para que esto se
Whitney
haga de manera coherente y segura es necesario utilizar algún método que incluya números de
secuencia.
[…]
1.6 Prioridad y seguridad
Las características de seguridad de TCP están basadas en las ofrecidas por IP, donde se tiene en cuenta
que opción de seguridad indicaba en un principio el nivel de “confidencialidad” de la información. Esto
dentro del diseño de TCP se utilizó para permitir a un enrutador militar decidir por dónde dirigir el
paquete (evitando el paso por países considerados como “malos”). Claramente hoy en día estos
parámetros de seguridad no son suficientes ni tampoco utilizados ya que para asegurar la
confidencialidad de la información se debe recurrir a la criptografía.
2. ESPECIFICACIÓN FUNCIONAL
System
En este momento entraremos en aspectos de la especificación funcional del protocolo, lo que nos
permitirá tener mayor claridad sobre el funcionamiento del mismo. Iniciemos con los diferentes
University
indicadores que se envían en un paquete TCP.
Dentro de los indicadores más utilizados encontramos el bit de ACK, SYN y FIN ya que estos son
utilizados en toda conexión TCP. El bit de SYN se envía prendido durante el proceso de sincronización de
números de secuencia al inicio de la conexión. Por otro lado, el bit ACK indica que se está enviando un
con
acuse de recibo sobre un número de secuencia específico (el cuál va en el campo de número de acuse de
recibo) y, por último, se encuentra el bit de finalización de conexión (FIN) el cual puede ser enviado por
alianza
cualquiera de las dos partes en el momento que se desee finalizar la conexión TCP.
El indicador PSH garantiza que la información recibida por la capa de transporte sea enviada por la red
inmediatamente tal como se ha mencionado anteriormente, siendo esta una opción disponible para el
Grancolombiano-en
emisor más no el receptor de la información.
El indicador URG muestra si es necesario o no tener en cuenta el puntero urgente, el cual se toma a
relativo a partir del inicio de los datos del paquete.
El indicador RST muestra que se debe finalizar la conexión sin más interacción entre las partes. Esto se
debe enviar cuando se encuentren algunos errores.
Una vez aclarados los indicadores que pueden ser enviados en los paquetes TCP continuamos con el
análisis los números de secuencia que maneja el protocolo:
Politécnico
“El hecho de que todo octeto de datos enviado por una conexión de TCP
tenga asociado un número de secuencia constituye una noción
fundamental en el diseño de TCP. Ya que cada octeto se secuencia,
puede realizarse un acuse de recibo de cada uno de ellos. El mecanismo
de acuse de recibo empleado es acumulativo, de tal forma que el acuse
de recibo de un número de secuencia X indica que todos los octetos
hasta, pero no incluyendo, X, han sido recibidos”.
Vale la pena mencionar que la numeración de octetos se inicia a partir del primer byte que se encuentra
en la sección de datos, es decir, los bytes de la cabecera TCP no cuentan como números de secuencia. En
la RFC se menciona que al tener una cantidad finita de números de secuencia (232) la comparación de
System
estos números se debe hacer modulo 232.
Verificación de números de secuencia para acuses de recibo entrantes
University
A continuación se muestran las verificaciones que deben realizarse sobre los números de secuencia de
acuses de recibo entrantes, para esto se tiene como parámetro la ventana de envío:
En este párrafo se presenta alguna terminología y también nos encontramos con el invariante que se
debe cumplir en todo momento, el cual especifica simplemente que el elemento para el que se está
recibiendo confirmación (SEG.ACK) se debe encontrar en la ventana de envío, es decir, debe ser un
número de secuencia posterior al mínimo número para el que se espera acuse de recibo (SND.UNA),
pero a su vez debe ser menor al número de secuencia del primer octeto de datos que aún no se ha
enviado (SND.NXT).
Lo que se quiere decir aquí es que al recibir un acuse de recibo que contiene un número de secuencia
superior al último octeto del segmento de datos de un paquete, este queda confirmado
automáticamente inclusive si no se tiene un acuse de recibo específico. Lo anterior se debe a que los
acuses de recibo son acumulativos.
Verificación de números de secuencia para la recepción de datos
En caso de querer verificar los números de secuencia para los datos que se reciben es necesario tener en
cuenta la venta de recepción.
System
la ventana de recepción
o si
En el párrafo anterior se explica el escenario en el que se tiene una ventana de al menos un byte y un
segmento que contiene al menos un byte también. A continuación se muestran los escenarios
especiales.
Politécnico
segmento recep.
University
0 0 SEG.SEQ = RCV.NXT
>0 0 no aceptable
En esta parte se tratan los casos en que se tienen ventanas de tamaño cero durante la recepción de
datos en el receptor o cuando lleguen segmentos sin datos. De esta manera, lo que se indica es:
con
• En caso de tener un segmento sin datos y una ventana de tamaño cero se debe cumplir que el
alianza
número de secuencia confirmado sea exactamente igual al número de secuencia que se recibirá
próximamente.
• En caso de tener un segmento de confirmación sin datos con una ventana no nula, lo que se
Grancolombiano-en
debe recibir son los números de secuencia que se encuentran dentro de la ventana del receptor.
• Tratar de tener una ventana de cero octetos y recibir un paquete que tenga al menos un octeto
es imposible, por esta razón no está permitido.
• Finalmente, el caso de tener un segmento con una cantidad de bytes mayor a cero y una
ventana de más de cero bytes nos vuelve a mostrar la verificación mencionada en el caso
general.
[…]
después del último octeto de datos del segmento que lleva el FIN”.
El último párrafo indica que el segmento que inicia la comunicación cuenta el indicador de SYN como un
primer octeto en la transmisión a pesar de que no se transmita ninguna información. Asimismo se
considera que el paquete que contiene el bit de FIN tiene un byte adicional al final de los datos enviados.
Whitney
Esto se hace únicamente con estos dos indicadores y la razón para hacerlo es para poder confirmar, de
manera inequívoca, la recepción de inicio y finalización de una conexión TCP.
*Todas las citas textuales son extraidas del Protocolo RFC0793‐es. (1981, Septiembre). Transmission
con
control protocol darpa internet program, protocol specification. Defense Advanced Research Projects
Agency. Information Processing Techniques Office 1400 Wilson Boulevard Arlington, Virginia 22209 by
alianza
Information Sciences Institute, University of Southern California, 4676 Admiralty Way Marina del Rey,
California 90291.
Grancolombiano-en
Politécnico
Politécnico Grancolombiano-en alianza con Whitney International University System
RFC0793‐es. (1981, Septiembre). RFC0793‐es. España.
BIBLIOGRAFÍA