sábado

TCP Y UDP

INTRODUCCION


En el presente trabajo, veremos los protocolos TCP y UDP con sus respectivas funciones, y sus características que hacen que funcionen en una red.
El TCP (Transmission Control Protocol, Protocolo de Control de Transmisión) es el Conjunto de protocolos de comunicación que se encargan de la seguridad y la integridad de los paquetes de datos que viajan por Internet, así como el UDP (User Datagram Protocol) es uno de los dos principales protocolos de transporte utilizados en las redes IP. Y de cada protocolo se pueden definir diversos puertos que corren en cada uno de los ya mencionados.

El Protocolo TCP
El fin de TCP es proveer un flujo de bytes confiable de extremo a extremo sobre una internet no confiable. TCP puede adaptarse dinámicamente a las propiedades de la internet y manejar fallas de muchas clases.La entidad de transporte de TCP puede estar en un proceso de usuario o en el kernel. Parte un flujo de bytes en trozos y los manda como datagramas de IP.Para obtener servicio de TCP, el emisor y el receptor tienen que crear los puntos terminales de la conexión (los sockets).La dirección de un socket es la dirección de IP del host y un número de 16 bits que es local al host (la puerta). Se identifica una conexión con las direcciones de socket de cada extremo; se puede usar un socket para conexiones múltiples a la vez.Los números de puerta bajo 256 son puertas bien conocidas para servicios comunes (como FTP).Las conexiones de TCP son punto-a-punto y full dúplex. No preservan los límites de mensajes.Cuando una aplicación manda datos a TCP, TCP puede mandarlos inmediatamente o almacenarlos (para acumular más). Una aplicación puede solicitar que TCP manda los datos inmediatamente a través del flag de PUSH (empujar).TCP también apoya los datos urgentes. TCP manda datos con el flag URGENT inmediatamente. En el destino TCP interrumpe la aplicación (la manda una señal), que permite que la aplicación pueda encontrar los datos urgentes.

Características del TCP:
  • TCP suministra una serie de servicios a los niveles superiores. Esta sección presenta brevemente esos servicios.

  • Como TCP es un protocolo orientado a conexión, es responsable de la transferencia fiable de cada uno de los caracteres (bytes u octetos) que reciben del nivel superior correspondiente. En consecuencia, utiliza números de secuencia y aceptaciones/rechazos.

  • TCP recibe datos de un protocolo de nivel superior de forma orientada a cadenas. Esto es diferente a muchos otros protocolos empleados en la inductria. Los protocolos orientados a cadenas se diseñan para enviar caracteres separados y no bloques, tramas, datagramas, etc. Los datos son enviados por un protocolo de nivel superior en forma de cadenas, byte a byte. Cuando llegan al nivel TCP, los bytes son agrupados para formar segmentos TCP. Dichos segmentos se transfieren a IP (o a otro protocolo de nivel inferior) para su transmisión al siguiente destino.

Tipos de conexión del TCP:

Los puertos TCP pueden establecer dos tipos de conexiones. El modo de apertura pasiva permite que el protocolo de nivel superior (por ejemplo, un servidor) indique al TCP y al sistema operativo del computador que va a esperar la llegada de solicitudes de conexión procedentes del sistema remoto, en lugar de enviar una apertura activa. Tras recibir esta solicitud, el sistema operativo asigna un número de puerto a este extremo. Esta utilidad se puede usar para realizar comunicaciones con usuarios remotos sin tener el retardo de la apertura activa.Los procesos de aplicaciones que solicitan la apertura pasiva pueden aceptar una solicitud de cualquier usuario (supuesto que se cumplen algunos requisitos de compatibilidad). Si se puede aceptar cualquier llamada (sin requisitos de compatibilidad) el número de socket exterior se pone a ceros. Los números de socket exterior no especificados sólo se permiten en aperturas pasivas.La segunda forma de establecimiento de conexión es el modo de apertura activa. En esta situación, el protocolo de nivel superior designa específicamente otro socket por el que establecer la conexión. Típicamente, se envía la apertura activa a un puerto con apertura pasiva para establecer un circuito virtual.TCP admite un escenario en el que se envían dos aperturas activas de un sistema a otro a la vez. TCP realizará la conexión. Esta caracteristicas permite que las aplicaciones envíen una apertura en cualquier momento, sin preocuparse de si la otra aplicación ha enviado otra apertura o no.TCP establece convenciones estrictas sobre cómo se deben utilizar conjuntamente las aperturas activas y pasivas. En primer lugar, una apertura activa identifica un socket específico, así como sus niveles de prioridad y de seguridad. TCP garantiza una apertura si el socket remoto tiene una apertura pasiva compatible, o si ha enviado una apertura activa compatible.

Funciones del TCP:

- Al enviar un segmento inicializa un reloj, en espera de una contraseña
(indicando que el mensaje se recibió); si el reloj expira antes que esta última
se reciba, reenvía el segmento suponiendo que el segmento se ha perdido.
- Cuando TCP recibe un mensaje, envía al remitente una contraseña
confirmando la recepción.
- Implementa algoritmos para verificar que la información recibida fue la misma
que la enviada; en caso de que el segmento llegue dañado a su destino, se
indica al remitente del hecho y este último lo reenvía.
- Dado que IP no garantiza el orden de llegada de los segmentos que envía,
TCP los reordenar si fuera necesario.
- Implementa algoritmos de control de flujo.
- Da la impresión a una aplicación de tener una línea directa en ambos
sentidos ( full duplex) a través de la cual se realiza la comunicación.




PUERTOS TCP:

Un puerto es un punto final a una conexión lógica y el medio por el que un programa cliente se comunica con un programa específico en una computadora en una red. Algunos puertos tienen números preasignados a ellos por la IANA . ( Internet Assigned Number Authority, Autoridad Asignadora de Números en Internet). En esta lista podemos ver algunos de los puertos del TCP.


El Protocolo UDP


El grupo de protocolos de Internet también maneja un protocolo de transporte sin conexiones, el UDP (User Data Protocol, protocolo de datos de usuario). El UDP ofrece a las aplicaciones un mecanismo para enviar datagramas IP en bruto encapsulados sin tener que establecer una conexión.
Muchas aplicaciones cliente-servidor que tienen una solicitud y una respuesta usan el UDP en lugar de tomarse la molestia de establecer y luego liberar una conexión. El UDP se describe en el RFC 768. Un segmento UDP consiste en una cabecera de 8 bytes seguida de los datos. La cabecera se muestra a continuación. Los dos puertos sirven para lo mismo que en el TCP: para identificar los puntos terminales de las máquinas origen y destino. El campo de longitud UDP incluye la cabecera de 8 bytes y los datos. La suma de comprobación UDP incluye la misma pseudocabecera de formato, la cabecera UDP, y los datos, rellenados con una cantidad par de bytes de ser necesario.
Esta suma es opcional, y se almacena como 0 si no se calcula. Inutilizarla seria absurdo, a menos que la cantidad de los datos no importe, por ejemplo, voz digitalizada.




UDP no admite numeración de los datagramas, factor que, sumado a que tampoco utiliza señales de confirmación de entrega, hace que la garantía de que un paquete llegue a su destino sea mucho menor que si se usa TCP. Esto también origina que los datagramas pueden llegar duplicados y/o desordenados a su destino. Por estos motivos el control de envío de datagramas, si existe, debe ser implementado por las aplicaciones que usan UDP como medio de transporte de datos, al igual que el reeensamble de los mensajes entrantes.
Es por ello un protocolo del tipo best-effort (máximo esfuerzo), porque hace lo que puede para transmitir los datagramas hacia la aplicación, pero no puede garantizar que la aplicación los reciba.
Tampoco utiliza mecanismos de detección de errores. Cuando se detecta un error en un datagrama, en lugar de entregarlo a la aplicación destino, se descarta.
Cuando una aplicación envía datos a través de UDP, éstos llegan al otro extremo como una unidad. Por ejemplo, si una aplicación escribe 5 veces en el puerto UDP, la aplicación al otro extremo hará 5 lecturas del puerto UDP. Además, el tamaño de cada escritura será igual que el tamaño de las lecturas.


Características del UDP:

  • No orientado a conexión

  • Poco fiable

  • Transmite mensajes (llamados datagramas del usuario)

  • No ofrece verificación de software para la entrega de segmentos (poco confiable)

  • No reensambla los mensajes entrantes

  • No utiliza acuses de recibo

  • No proporciona control de flujo

Funciones del UDP:

En envío:

– Está permitido enviar 0 bytes.
– El valor de retorno de la función indica el número de bytes que el S.O. acepta
mandar como datagrama, no la cantidad de bytes que llegó al destino (es un
servicio no fiable).
– No hay condición de error que indique que los datos no llegaron al destino.

En recepción:

– Está igualmente permitido recibir 0 bytes de datos.
– El valor de retorno indica los bytes recibidos.
– Si el buffer (buff) no es suficientemente grande, los datos que no caben se pierden.


PUERTOS UDP:


CONCLUSIONES

Los protocolos de Internet se han convertido en una de las familias de protocolos más ampliamente utilizada en el mundo. Están diseñados para facilitar la intercomunicación de redes de computadores.Los protocolos Internet constan de muchos protocolos diseñados para dar soporte a las operaciones de comunicacion entre redes..Los dos protocolos más importantes, y que fueron también los primeros en definirse y también los más utilizados, son TCP (Protocolo de Control de Transmisión o Transmission Control Protocol) e IP (Protocolo de Internet o Internet Protocol), de ahí que se denomine también como Conjunto de Protocolos TCP/IP. Los tipos de protocolos existentes superan los cien, entre los cuales podemos mencionar como los más conocidos a HTTP, FTP, SMTP, POP, ARP, etc.











No hay comentarios: