Conexión en udp.

Iniciado por lilezek, 14 Octubre 2010, 16:24 PM

0 Miembros y 1 Visitante están viendo este tema.

lilezek

Buenos días a todos los entendidos de redes.

El protocolo tcp mantiene una conexión servidor->cliente dónde el servidor espera en un puerto y un cliente por ese puerto y con su dirección, se conecta y espera a ser aceptado. Entonces, se transfieren paquetes.

De este modo, el servidor necesita tener los puertos abiertos y correctamente direccionados a la máquina para poder crear tal conexión.

En udp, el servidor espera en un puerto y por ese puerto el cliente le envía los paquetes directamente. No se establece conexión.

Iendo al grano:

Está claro que, como en tcp, es necesario que el servidor tenga preparado el puerto de escucha. Sin embargo, ¿Qué sucede con el cliente? ¿Tiene la necesidad de preparar también la conexión en tal puerto? ¿Existe algún método de conexión por udp?

Gracias por leer.

madpitbull_99

#1
La conexione en UDP se realiza casi de la misma forma que en TCP. Por dentro es un poco mas complicado.

Mira por ejemplo el TCP:

      tcp      6 117 SYN_SENT src=192.168.1.128 dst=192.168.1.100 sport=1031 \
     dport=23 [UNREPLIED] src=192.168.1.128 dst=192.168.1.100 sport=23 \
     dport=1031 use=1


Y aqui tiene el UDP:


      udp      17 20 src=192.168.1.128 dst=192.168.1.100 sport=137 dport=1025 \
     [UNREPLIED] src=192.168.1.128 dst=192.168.1.100 sport=1025 \
     dport=137 use=1


Digamos que UDP no mantiene un estado de conexión alguna, envía la información sin importarle si llega o no. TCP si mantiene un estado de conexión y envía datagramas con RESPONSE diciendo que ha recibido la información y que sigue esperando a que le llegue mas .

Aqui tienes el RFC del UDP (http://www.ietf.org/rfc/rfc0768.txt). El RFC me lo ha pasado T0rete.

PD: se me ha olvidado mencionar que el tercer valor del trafico es el Tiempo de Vida en segundos  que le queda a esa entrada de estado.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

-=[ §ÂßÂÑÐØ ]=-

Se le olvido a madpitbull_99 decirte para que se usa UDP....


Las conexiones tipicas de UDP se realizan cuando lo que de verdad importa es la velocidad de la transmision.

Ejemplo: Streaming de video,TFTP(ftp por udp sin comprobacion de errores ni na) y poco mas....

Recuerda que el UDP se usa cuando lo importante es la velocidad no el control de errores y esas cosas otro ejemplo que se me acaba de ocurrir por ejemplo del uso de UDP es la telefonia VoIP.....

No nos interesa que llegue el mensaje con comprobacion de errores sino que la transmision vaya rapida.... si el receptor recibe el paquete bien sino....se jod*
SALUDOS DE -=[ §AßAÑÐØ ]=-






lilezek

Muchísimas gracias por las respuestas. Todavía tengo algunas objecciones:

@madpitbull_99:

Esa información ya la conocía. Lo que no entiendo es que la conexión udp sea casi la misma que tcp. He creado varios ejemplos con c++ de udp y tcp. En el tcp siempre se me congela la aplicación a la hora de enviar hasta que sepa que ya se a enviado.
Pero en udp eso no sucede. Por eso no entiendo a que te refieres.

@-=[ §ÂßÂÑÐØ ]=-:

Esto también lo sabía. No sé si os olvidasteis de responder a mis preguntas o que lo estáis haciendo y no entiendo las respuestas. De todos modos vuelvo a formularlas:

En udp, ¿cómo mando paquetes al cliente sin que éste tenga la necesidad de preparar los puertos para su llegada?

Por ejemplo, el cliente es un ordenador de 7 conectados a un router. Si mando un paquete udp al cliente, ¿éste no se perderá al llegar al router? ¿es necesario direccionar un puerto a uno de esos 7 ordenadores para que llegen?

-=[ §ÂßÂÑÐØ ]=-

#4
Vamos a ver lilezek......

La transmision en udp es sencilla y entendible.....

CitarLo que no entiendo es que la conexión udp sea casi la misma que tcp

Falso,la conexion TCP y UDP en si pertenecen a la capa 4 del modelo OSI la capa de transporte.....lo que pasa que en tcp se comprueba cada segmento mandado por la red y en UDP no....

Ejemplo de conexion en TCP

RECEPTOR ---- EMISOR

Hola estas ahi------>si
quiero establecer conexion------>ok
necesito esto--------->ok
recibiendo paquetes<---------enviando paquetes
por cada X paquetes el receptor envia una especie de acuse de recibo(tengo todo)--------->ok entonces no te reenvio (si no tiene todo le reenvia)
he acabado de recibir datos----->ok
fin de conexion------->OK

CONEXION CERRADA


Ejemplo de conexion en UDP

RECEPTOR----->EMISOR

Hola estas ahi------>si
quiero establecer conexion------>ok
pillando todo lo que llega<-----------enviando paquetes a destajo
e para el carro que he acabado------->ok

CONEXION CERRADA

Espero haberte aclarado un poco mas...


Respondiendo a tus ultimas preguntas modificadas....

CitarEstá claro que, como en tcp, es necesario que el servidor tenga preparado el puerto de escucha. Sin embargo, ¿Qué sucede con el cliente? ¿Tiene la necesidad de preparar también la conexión en tal puerto? ¿Existe algún método de conexión por udp?

Esta claro, para que haya una conexion ya sea TCP o UDP debe haber una conexion entre el puerto emisor y el receptor....

Si tu transmision ha de ser fiable en cada paquete tendras que usar TCP aunque vaya un poco ams lento te aseguras el que no haya problemas en la transmision....

La probabilidad de que se peirda un paquete UDP depende de varios factores......como elt rafico que tenga la red.....la carga que tenga el receptor....etc
SALUDOS DE -=[ §AßAÑÐØ ]=-