Que es TCP

TCP-UDP

Prologo: (El Protocolo-Control-Transmisión permite la transmisión de información en ambas direcciones. Por lo tanto, los sistemas informáticos que se comunican mediante TCP pueden enviar y recibir datos de forma simultánea. TCP ofrece un mecanismo de entrega de datos más seguro y robusto, lo que lo convierte en la opción ideal para aplicaciones que requieren alta integridad de los datos).

Que es TCP

-. Protocolo de control de transmisión (Transmission Control Protocol o TCP) es uno de los protocolos fundamentales en Internet.

  • .Que es Nivel-Transporte-OSI: “capa de transporte” “cuarta capa del modelo OSI”, Se encarga de la transferencia confiable de datos entre aplicaciones que se ejecutan en diferentes sistemas, independientemente de la red subyacente. Un puente entre las aplicaciones y las redes, asegurando que los datos se envíen de forma correcta, completa y en el orden correcto. Este puente funciona entre las capas-superiores (sesión, presentación y aplicación) y las capas-inferiores (red, enlace de datos y física) del modeloOSI. los protocolos más utilizados en la capa-transporte son TCP y UDP.

-. El protocolo de control de transmisión (TCP) es, al igual que el protocolo UDP como el SCTP, un protocolo de Internet que está ubicado en la capa de transporte del modelo OSI. El objetivo del protocolo TCP es crear conexiones dentro de una red de datos compuesta por redes de computadoras para intercambiar datos. Además, en cuanto a su funcionamiento, garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de (Puertos de Internet o Puertos).

Nota: Stream-Control-Transmission-Protocol (SCTP) es un protocolo de comunicación de Capa-Transporte es una alternativa a los Protocolos-Transporte TCP y UDP pues provee confiabilidad, control de flujo y secuenciación como TCP. Sin embargo, SCTP opcionalmente permite el envío de mensajes fuera de orden y a diferencia de TCP, SCTP es un protocolo orientado al mensaje (similar al envío de datagramas UDP)

Nota: Puertos de Internet (Puertos) un puerto es el valor que se usa, en el modelo de la capa de transporte, para distinguir entre las múltiples aplicaciones que se pueden conectar al mismo host, o puesto de trabajo. Aunque muchos de los puertos se asignan de manera arbitraria, ciertos puertos se asignan, por convenio, a ciertas aplicaciones particulares o servicios de carácter universal. (los puertos comprendidos entre los valores 0, 1023 reservados). (los puertos numerados 1024, 65535 libres).

. Las aplicaciones pueden comunicarse en forma segura gracias al: (Acuse de reciboACK– del protocolo TCP) independientemente de las Capas-Inferiores. Esto significa que los Routers, funcionan en la Capa-Red solo tienen que enviar los datos en forma de Segmentos, sin preocuparse con el monitoreo de datos porque esta función la cumple la Capa-Transporte (o más específicamente el protocolo TCP).

 

Cabecera-TCP

-. El diagrama muestra la estructura de la cabeceraTCP, es un protocolo de transporte utilizado en las redes informáticas para la transmisión de datos entre dos hosts. La cabeceraTCP contiene información esencial para la comunicación entre los hosts, como los puertos de origen y destino, los números de secuencia y de acuse de recibo, la longitud de los datos y las banderas de control.

Estructura de la cabecera TCP:

  • Puerto de origen (16 bits): Identifica el puerto de software en el host de origen que envió el segmento TCP.
  • Puerto de destino (16 bits): Identifica el puerto de software en el host de destino que debe recibir el segmento TCP.
  • Número de secuencia (32 bits): Se utiliza para ordenar los segmentos TCP y evitar la pérdida de datos.
  • Número de acuse de recibo (32 bits): Indica al host de origen hasta qué byte de datos ha recibido correctamente el host de destino.
  • Longitud del encabezado (4 bits): Indica la longitud de la cabecera TCP en palabras de 32 bits.
  • Bandera (9 bits): Contiene bits de control que indican el estado de la conexión TCP y las opciones de transmisión.
  • Ventana de recepción (16 bits): Indica la cantidad de datos que el host de destino está dispuesto a recibir.
  • Puntero de suma de comprobación (16 bits): Se utiliza para detectar errores en la transmisión de datos.
  • Puntero urgente (16 bits): Indica la ubicación de los datos urgentes en el segmento TCP.
  • Opciones (variable): Proporcionan información adicional sobre la conexión TCP.
  • Relleno (variable): Se utiliza para igualar la longitud de la cabecera TCP a un múltiplo de 4 bytes.
  • Datos de la aplicación: Contienen los datos que se transmiten entre los hosts.

Funcionalidades de cada campo:

-. Puerto de origen y destino estos campos identifican los puertos de software específicos en los hosts de origen y destino que se utilizan para la comunicación. Que nos ofrece que múltiples aplicaciones se ejecuten simultáneamente en un solo host sin interferirse entre sí.

-. Números de secuencia y de acuse de recibo estos campos se utilizan para ordenar los segmentosTCP y garantizar que se reciban todos los datos en el orden correcto. El número de secuencia se incrementa con cada byte de datos enviado, mientras que el número de acuse de recibo indica al host de origen hasta qué byte de datos ha recibido correctamente el host de destino.

-. Longitud del encabezado este campo indica la longitud de la cabeceraTCP en palabras de 32bits. Esto permite al host de destino determinar la cantidad de datos de encabezado que debe procesar antes de llegar a los datos de la aplicación.

. La Bandera o flas contiene bits de control que indican el estado de la conexiónTCP y las opciones de transmisión. Algunos de los bits de bandera más importantes incluyen:

  • SYN (Sincronización): Se utiliza para establecer una nueva conexión TCP.
  • FIN (Fin): Se utiliza para indicar que el host de origen ha terminado de enviar datos.
  • ACK (Acuse de recibo): Se utiliza para indicar que el host de destino ha recibido correctamente los datos.
  • PSH (Empuje): Se utiliza para indicar que los datos de la aplicación deben ser enviados inmediatamente al host de destino.

-. Ventana de recepción este campo indica la cantidad de datos que el host de destino está dispuesto a recibir. Esto ayuda a evitar que el host de origen envíe demasiados datos al host de destino a la vez, lo que podría provocar una congestión en la Red.

-. Puntero de suma de comprobación este campo se utiliza para detectar errores en la transmisión de datos. La suma de comprobación se calcula en el host de origen y se verifica en el host de destino. Si la suma de comprobación no coincide, el segmentoTCP se descarta.

-. Puntero urgente este campo indica la ubicación de los datos urgentes en el segmentoTCP. Los datos urgentes se utilizan para transmitir información crítica que debe procesarse inmediatamente por el host de destino.

-. Las Opciones proporcionan información adicional sobre la conexiónTCP, como el tamaño máximo de segmento (MSS) y las opciones de escalado de ventana (WSCALE).

-. El Relleno se utiliza para igualar la longitud de la cabeceraTCP a un múltiplo de 4bytes. Esto es importante porque algunos protocolosRed requieren que los datos estén alineados en palabras de 32 bits.

-. Datos de la aplicación este campo contiene el mensaje real que se está transmitiendo entre las aplicaciones. La longitud de este campo puede variar y depende del tamaño del mensaje. Los datos pueden estar en cualquier formato, dependiendo de la aplicación que los esté utilizando.

Del diagrama podríamos decir (valores-típicos):

  • Puerto de origen: 12345
  • Puerto de destino: 80
  • Número de secuencia: 1000
  • Número de acuse de recibo: 500
  • Longitud del encabezado: 5 palabras de 32 bits (20 bytes)
  • Bandera: SYN (establecer conexión)
  • Ventana de recepción: 65535 bytes
  • Puntero de suma de comprobación: 0x1234
  • Puntero urgente: 0
  • Opciones: Sin opciones
  • Relleno: 0

Cómo funcionan-TCP

Triple apretón de manos: Establecimiento-Conexión-TCP

Una conexión TCP válida sea posible, ambos puntos terminales deben contar con una dirección IP,(IPv4 o IPv6) y deben haber declarado y habilitado el Puerto deseado para la transmisión de datos. Mientras que la dirección IP funciona como característica de identificación, el Puerto sirve para que el sistema operativo pueda asignar las conexiones a las aplicaciones de servidor y de cliente.

Nota: El diagrama muestra una interacción simplificada entre un cliente y un servidor. El cliente es un dispositivo, como una computadora personal o un teléfono inteligente, que inicia una solicitud de información o servicio a un servidor. El servidor es una computadora que proporciona recursos o servicios a los clientes.

  1. En el primer paso, el cliente que desea establecer la conexión envía al servidor un paquete SYN o segmento SYN (synchronize = sincronizar) con un número de secuencia (SEQ) individual y aleatorio. Este número garantiza la transmisión completa en el orden correcto (sin duplicados).
  2. Si el servidor ha recibido el segmento, confirma el establecimiento de la conexión mediante el envío de un paquete SYN-ACK (acknowledgement = confirmación) incluido el número de secuencia (SEQ) del cliente después de sumarle 1. De forma adicional, transmite un número de secuencia propio al cliente.
  3. Para finalizar, el cliente confirma la recepción del segmento SYN-ACK mediante el envío de un paquete ACK (acuse de recibo) propio, que en este caso cuenta con el número de secuencia del servidor después de sumarle 1. En este punto también puede transmitir ya los primeros datos al servidor.

Nota: TCP es usado en gran parte de las comunicaciones de datos, gran parte de las comunicaciones que tienen lugar en Internet emplean TCP .

Nota: En la pila de protocolos TCP/IP , TCP es la capa intermedia entre el protocolo de red (IP) y la aplicación. Muchas veces las aplicaciones necesitan que la comunicación a través de la red sea confiable. Para ello se implementa el protocolo TCP que asegura que los datos que emite el cliente sean recibidos por el servidor sin errores y en el mismo orden que fueron emitidos. Es un protocolo orientado a la conexión, ya que el cliente y el servidor deben anunciarse y aceptar la conexión antes de comenzar a transmitir los datos a ese usuario que debe recibirlos.

Nota: En el Nivel-Transporte, los paquetes de bits que constituyen las unidades de datos de protocolo TCP se llaman (segmentos).

 

Fin de una conexión TCP en cuatro pasos (TCP-Teardown)

-. Ambos interlocutores de la comunicación pueden interrumpir una conexión TCP establecida e incluso se permite la interrupción unilateral.

-. El diagrama de secuencia muestra el proceso de cierre de una conexiónTCP en cuatro pasos. Los participantes en este proceso son un cliente y un servidor.

  1. El cliente envía un segmento FIN al servidor para comunicarle que ya no desea enviar más datos. Al igual que en el establecimiento de conexión, también envía un número de secuencia propio (SEQ).
  2. El servidor confirma la recepción del paquete mediante un segmento ACK que incluye el número de secuencia (SEQ) después de sumarle 1.
  3. Si el servidor, a su vez, ha finalizado con la transmisión de datos, envía también un paquete FIN al que vuelve a añadir su número de secuencia (SEQ).
  4. Ahora le toca al cliente enviar un paquete ACK con el número de secuencia (SEQ) recibido tras sumarle 1 y así el servidor dará la conexión TCP por interrumpida oficialmente.

-. No existe forma de garantizar que el último paquete enviado ha llegado a su destino, el correspondiente interlocutor de comunicación permanece en un Modo-Espera (Time-Wait) hasta que hayan transcurrido los tiempos de ejecución máximos del segmento ACK y de un posible nuevo segmento FIN ( RFC 793, 2 minutos en este caso).

Las Banderas (flags)

URG. La etiqueta Urgent (urgente) señaliza a la aplicación TCP que los datos de uso hasta el Urgent-Pointer fijado se deben procesar inmediatamente.

  • ACK. Junto con el número de confirmación , ACK sirve para confirmar la recepción de paquetes TCP. Si no se ha ajustado la etiqueta, el número de confirmación se convierte en inválido de forma automática.
  • PSH. (Push) sirve para facilitar un segmento TCP inmediatamente sin tener que pasar por el buffer de datos del emisor y el receptor.
  • RST. Si ha surgido un error durante la transmisión, la aplicación se puede restablecer mediante un paquete TCP con Bandera (flag) RST (Reset) ajustado.
  • SYN. Los mensajes con una etiqueta SYN representan el primer paso del triple apretón de manos, es decir, inician el establecimiento de conexión.
  • FIN. (Finish) señaliza a la contraparte que uno de los interlocutores de la comunicación ha finalizado la transmisión.

Puertos-TCP

-. TCP usa el concepto de número de puerto para identificar a las aplicaciones emisoras y receptoras. Cada lado de la conexión TCP tiene asociado un número de puerto

-. Los puertos bien conocidos son asignados por la Internet Assigned Numbers Authority (IANA), van del 0 al 1023 y son usados normalmente por el sistema o por procesos con privilegios. Las aplicaciones que usan este tipo de puertos son ejecutadas como servidores y se quedan a la escucha de conexiones. SSH (22) , Telnet (23) y HTTP (80) .

-. Los puertos registrados son normalmente empleados por las aplicaciones de usuario de forma temporal cuando conectan con los servidores, pero también pueden representar servicios que hayan sido registrados por un tercero. Puertos-registrados: 1024 al 49151.

-. Los puertos dinámicos-privados también pueden ser usados por las aplicaciones de usuario, pero este caso es menos común. Los puertos-dinámicos-privados no tienen significado fuera de la conexión TCP en la que fueron usados. Puertos-dinámicos-privados: 49152 al 65535.

Nota: Pongamos un ejemplo real, tenemos un servidor en My-LAN con una aplicación WordPress creada con Docker-Compose con un puesto de salida en el servido 8000 y queremos conectarnos a la aplicación del servidor a My-Portátil lo primero es conectarnos al servidor, ejecutamos: My-Portatil:~$ ssh -L 9000:localhost:8000 juan@192.168.1.100. Arrancar nuestro navegador del host web :http://localhost:9000 y tenemos en nuestra aplicación en nuestro portátil en el navegador, conclusión: Que hemos usado el (Transmission Control Protocol o TCP) y usado los puertos (Puertos-registrados: 1024 al 49151) concretamente 9000 y 8000 .

 

Recopilando:

TCP o Protocolo de control de transmisión es un protocolo orientado a la conexión, que se encuentra en la capa de transporte del modelo TCP / IP. Establece una conexión entre la computadora de origen y la de destino

  • Referencias: (Entorno-Moreluz)
  • Referencias: Puertos
Etiquetada como

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *