noviembre 23, 2023

Protocolos Capa de Transporte. TCP

 TCP


    A diferencia del protocolo UDP, TCP es un protocolo que ofrece un servicio de flujos de
bytes, fiable y orientado a la conexión. Dicho servicio ha demostrado ser útil para una
amplia variedad de aplicaciones porque libera a la aplicación de tener que preocuparse
sobre datos perdidos o reordenados, [53].

    El protocolo de control de transmisión (Transmission Control Protocol o TCP) es uno
de los protocolos fundamentales en Internet. Los programas pueden usar TCP para crear
“conexiones” entre sí a través de las cuales puede enviarse un flujo de datos.
TCP da soporte a muchas de las aplicaciones de Internet (navegadores, intercambio de
ficheros, clientes FTP, etc.) y protocolos de aplicación, [2], [3] :

  • HTTP. HTTP, protocolo de transferencia de hipertexto, se utiliza para la comunicación entre los navegadores web y servidores web. 
  • FTP.  El Protocolo de transferencia de archivos permite que los directorios en una computadora remota naveguen y transferir archivos para ir de una computadora a otra a través de una conexión. 
  • Telnet.  Telnet proporciona acceso mediante una sesión de terminal a una computadora remota. 
  • SMTP. El Protocolo de transferencia de correo se utiliza para enviar correo entre computadoras.
En la Figura 1 se muestra la posición de IP y de los protocolos de la capa de red, en conjunto con la grupo de protocolos de TCP/IP ya descritos (se han omitido los protocolos por debajo de la capa de Red).


Figure 1: Protocolos TCP/IP


Las características de TCP son las siguientes:

  • Tamaños de mensaje: la aplicación puede elegir cuántos datos escribe o lee en un segmento. Puede tratar conjuntos de datos muy pequeños o muy grandes. La implementación de una secuencia o segmento TCP decide cuántos datos recopilar antes de transmitirlo como uno o más paquetes IP. A su llegada, los datos se entregan a la aplicación según lo solicitado. 
  • Mensajes perdidos: el protocolo TCP utiliza un esquema de reconocimiento del mensaje. Por ejemplo, el extremo emisor mantiene un registro de cada paquete IP enviado y el extremo receptor reconoce todas las solicitudes recibidas y envía un acuse de recibo. Si el remitente no recibe un acuse de recibo de un mensaje dentro de un tiempo de espera, entonces retransmite el mensaje. 
  • Control de flujo: TCP intenta igualar las velocidades de los procesos de lectura y escritura en un segmento. Si el escritor es demasiado rápido para el lector, entonces es bloqueado hasta que el lector haya consumido suficientes segmentos de datos. Duplicación y ordenamiento de mensajes: los identificadores de mensajes están asociados con cada paquete IP, que permite al destinatario detectar y rechazar duplicados, o reordenar los mensajes que no llegan en el orden del remitente. 
  • Destinos de mensajes: un par de procesos de comunicación establecen una conexión antes de que puedan comunicarse a través de una secuencia. Una vez que se establece una conexión, Los procesos leen y escriben los stream de datos sin necesidad de utilizar direcciones de Internet o puertos. Establecer una conexión implica una solicitud de conexión del cliente al servidor seguido de una solicitud de aceptación del servidor al cliente antes que cualquier comunicación puede tener lugar.
Figura 2: Intercambio de mensajes en TCP

Mensajes de TCP

    TCP es un protocolo orientado a bytes, significa que el remitente escribe bytes en una
conexión TCP y el receptor lee bytes de la conexión TCP, [1], [2]. TCP no transmite
bytes individuales a través de Internet. En su lugar, TCP en el host origen almacena
suficientes bytes del proceso de envío para llenar un paquete de tamaño razonable y luego
envía este paquete a su par en el host destino. TCP en el host destino vacía el contenido del
paquete en un búfer de recepción, y el proceso de recepción lee de este búfer en su tiempo
libre.
    En la Figura 2, muestra este intercambio de datos en una dirección; aunque, una
única conexión TCP admite flujos de bytes que fluyen en ambas direcciones.
Los paquetes intercambiados entre pares TCP en la Figura 2 son segmentos, ya que
cada uno lleva una parte del flujo de bytes.

    La estructura del segmento se muestra en la Figura 3.
  • SrcPort y DstPort identifican el origen y el destino de los puertos, al igual que en UDP. Estos campos, más la dirección de lafuente y las IP de destino, identifican cada conexión TCP.
  • El campo número de secuencia contiene el número de secuencia para el primer byte de datos transportado en ese segmento. 
  • Los campos Reconocimiento y Ventana de Advertencia llevan información sobre el flujo de datos que van en la dirección contraria. 
  • El campo banderas se utiliza para transmitir información de control entre los puntos de conexión TCP. Los indicadores posibles incluyen SYN, FIN, RESET, PUSH, URG y ACK. Por ejemplo, las banderas SYN y FIN se utilizan al establecer y terminar una conexión TCP, respectivamente.
  • El campo HdrLen da la longitud del encabezado en palabras de 32 bits. Este campo se conoce como campo de desplazamiento, ya que mide el desplazamiento desde el inicio del paquete hasta el comienzo de los datos. 
  • El campo Checksum se usa de la misma manera que para UDP: se calcula sobre el encabezado TCP, los datos TCP y el pseudoencabezado, que se compone de la dirección de origen, la dirección de destino y la longitud campos del encabezado IP. La suma de comprobación es necesaria para TCP tanto en IPv4 e IPv6.
Figure 3: Estructura de mensajes en TCP



Bibliografia:

[1] Douglas Comer. Internetworking with TCP/IP . Volume 1. Sixth edition, Pearson New International Edition. Always learning. Pearson Education Limited, 2014
[2]Larry L. Peterson and Bruce S. Davie. Computer Networks: A Systems Approach. 6th edition. Morgan Kaufmann, 2021
[3] Behrouz A. Forouzan. Data communications & networking with TCP/IP protocol suite. McGraw-Hill Forouzan networking series. McGraw-Hill US Higher Ed ISE, 2021. ISBN

No hay comentarios.:

Publicar un comentario