Protocolo+TCP

En este artículos vamos a profundizar sobre el significado de protocolo.
 * __ TCP __**

Transmission Control Protocol (en español Protocolo de Control de Transmisión) o TCP, es uno de los protocolos fundamentales en Internet. Fue creado entre los años 1973 y 1974 por Vint Cerf y Robert Kahn.

Está pensado para poder enviar grandes cantidades de información de forma fiable, liberando al programador de la dificultad de gestionar la fiabilidad de la conexión (retransmisiones, pérdida de paquetes, orden en el que llegan los paquetes, duplicados de paquetes...) que gestiona el propio protocolo.


 * Comparativa entre UDP y TCP: **



El protocolo UDP
UDP es un protocolo no orientado a conexión. Es decir cuando una maquina A envía paquetes a una maquina B, el flujo es unidireccional. La transferencia de datos es realizada sin haber realizado previamente una conexión con la maquina de destino (maquina B), y el destinatario recibirá los datos sin enviar una confirmación al emisor (la maquina A). Esto es debido a que la encapsulación de datos enviada por el protocolo UDP no permite transmitir la información relacionada al emisor. Por ello el destinatario no conocerá al emisor de los datos excepto su IP.

El protocolo TCP
Contrariamente a UDP, el protocolo TCP está orientado a conexión. Cuando una máquina A envía datos a una máquina B, la máquina B es informada de la llegada de datos, y confirma su buena recepción. Aquí interviene el control CRC de datos que se basa en una ecuación matemática que permite verificar la integridad de los datos transmitidos. De este modo, si los datos recibidos son corruptos, el protocolo TCP permite que los destinatarios soliciten al emisor que vuelvan a enviar los datos corruptos.

Por lo tanto, qué podemos deducir de esto ? Pues que el protocolo UDP está más orientado al envío rápido de datos, sin importar la integridad del mensaje, y que el protocolo TCP está orientado a un envío de datos seguro y fiable. Por lo tanto la mayoría de programas que necesitan una transmisión rápida, como pueden ser los de videoconferencias, usarán el protocolo UDP, y que otros que necesitan que los archivos lleguen íntegros, como pueden ser los programas de subida y bajada de archivos, usaran el protocolo TCP.

Bien, ahora que ya sabemos las diferencias entre UDP y TCP, podemos centrarnos en aprender más cosas sobre este último.


 * Funciones de TCP **

En la pila de protocolos TCP/IP, TCP es la capa intermedia entre el protocolo de internet (IP) y la aplicación. Habitualmente, las aplicaciones necesitan que la comunicación sea fiable y, dado que la capa IP aporta un servicio de datagramas no fiable (sin confirmación), TCP añade las funciones necesarias para prestar un servicio que permita que la comunicación entre dos sistemas se efectúe libre de errores, sin pérdidas y con seguridad.

Los servicios provistos por TCP corren en el anfitrión (host) de cualquiera de los extremos de una conexión, no en la red. Por lo tanto, TCP es un protocolo para manejar conexiones de extremo a extremo. Tales conexiones pueden existir a través de una serie de conexiones punto a punto, por lo que estas conexiones extremo-extremo son llamadas circuitos virtuales.


 * Orientado a la conexión:** dos computadoras establecen una conexión para intercambiar datos. Los sistemas de los extremos se sincronizan con el otro para manejar el flujo de paquetes y adaptarse a la congestión de la red.
 * Operación Full-Dúplex:** una conexión TCP es un par de circuitos virtuales, cada uno en una dirección. Sólo los dos sistemas finales sincronizados pueden usar la conexión.
 * Error Checking:** una técnica de checksum es usada para verificar que los paquetes no estén corruptos.
 * Acknowledgements:** sobre recibo de uno o más paquetes, el receptor regresa un acknowledgement (reconocimiento) al transmisor indicando que recibió los paquetes. Si los paquetes no son notificados, el transmisor puede reenviar los paquetes o terminar la conexión si el transmisor cree que el receptor no está más en la conexión.
 * Control de flujo:** si el transmisor está desbordando el buffer del receptor por transmitir demasiado rápido, el receptor descarta paquetes. Los acknowledgement fallidos que llegan al transmisor le alertan para bajar la tasa de transferencia o dejar de transmitir.
 * Servicio de recuperación de Paquetes:** el receptor puede pedir la retransmisión de un paquete. Si el paquete no es notificado como recibido (ACK), el transmisor envía de nuevo el paquete.

Los servicios confiables de entrega de datos son críticos para aplicaciones tales como transferencias de archivos (FTP por ejemplo), servicios de bases de datos, proceso de transacciones y otras aplicaciones de misión crítica en las cuales la entrega de cada paquete debe ser garantizada.

** Origen Histórico **

En mayo de1974, elInstituto de Ingenieros Eléctricosy Electrónicos (IEEE ) publicó un documento titulado " Protocolo de Interconexiónde paquetes de red ". Los autores del artículo, Vint Cerf y Bob Kahn , que se describe un protocolode conexión en redpara compartir recursosconconmutación de paquetesentrelos nodos.Un componentecentral de controlde este modelofue el Programade control de transmisiónqueincorporanambosorientados a la conexiónenlacesy serviciosde datagramasentre hosts. El Programade Control de Transmisiónmonolíticase dividiómás tarde enuna arquitectura modularque consiste enel Protocolode control de transmisiónen la capaorientado a la conexióny el Protocolo deInternet en lainterconexión de redes ( datagrama) de la capa.El modelose conoceinformalmentecomo TCP / IP, aunque formalmente se llamóen adelante, elconjunto de protocolosde Internet.

Y para cerrar este artículos os dejo una lista con los puertos bien conocidos usados por los protocolos TCP y UDP y alguno que otro más, así podréis ver que programas usan UDP y cuales usan TCP:

[]

Fuentes: Este artículo es una recopilación personal de contenido encontrado en varias páginas webs y posteriormente editado por mi.