2011-02-03 11 views
6

Estaba configurando IPtable ayer. Mi colega me acaba de hacer esta pregunta, y no podía escribir. Me di cuenta de que soy mucho mejor desarrollador que los administradores de sistemas y necesito mejorar eso.¿Cuál es la diferencia entre los paquetes UDP y TCP? ¿Para qué los utiliza?

¿Qué son? ¿Para qué son? Contras/Pros (si es relevante).

+0

typo en el título Q: U ** PD ** -> U ** DP ** –

+0

¿Desea la diferencia entre los paquetes o entre los protocolos? Y por cierto, está fuera de tema. –

+0

@nick: ni siquiera ahora eran un paquete y un protocolo para distinguir :-). @Alejandro. Gracias por arreglarlo –

Respuesta

10

Estas son preguntas básicas.

UDP User Datagram Protocol ::

1) No hay un extremo a otro de conexión entre las máquinas (puede estar en la red local o en algún lugar de la Internet).

2) Los datos recibidos en el receptor no están en flujo como en TCP sino como un bloque completo de datos.

3) En la capa de transporte no se realiza ninguna comprobación de orden de paquetes. Es decir, en caso de error en el paquete recibido, el receptor no solicitará volver a enviar el mismo paquete al remitente.

4) Debido a la comportamiento anterior no son necesarios tampones enviarlos al final del remitente.

5) Como no hay conexión de extremo a extremo es estld. y no se requieren handshakings, UDP es mucho más rápido pero menos confiable que TCP. De este modo se utiliza sobre todo en los juegos y DNS etc ..

6) Confirmación no requerida para ser enviado después de recieiving paquetes.

de control TCP Protocolo de Transmisión :: Fin

1) para poner fin a la conexión se mantiene entre las máquinas (puede estar en la red local o en algún lugar de la Internet).

2) Los datos recibidos en el extremo del receptor son una secuencia en TCP. Por lo tanto, cuando hacemos programación de red para servidores primero analizamos primero el encabezado y luego dependiendo del tamaño mencionado en el encabezado obtenemos ese número de bytes mucho mayor del buffer.

3) Se completaron la comprobación de errores y el número de secuencia. Por lo tanto, en caso de que un paquete se reciba fuera de servicio (raramente) o se extravíe, el paquete se reenviará. Además, muchos otros protocolos están involucrados para el control de flujo (control de flujo de extremo a extremo).

4) Como establecimiento de la conexión, el apretón de manos y el reconocimiento que se debe hacer más lenta TCP son, básicamente, en la operación de UDP. (No es significativamente creo)

5) Muchos de los protocolos TCP utiliza como protocolo de transporte subyacente. HTTP, FTP, TELNET etc ..

6) El procedimiento de comunicación implica:

de datos :: 1) socket abierto 2) Socket Enlazar 3) Socket Escuchar 4) Socket Aceptar 5) Socket Enviar/Recv Cliente :: 1) socket abierto 2) conector de acoplamiento 3) envío de un conector/Recv

Hay muchas otras diferencias también ... pero las anteriores son las más comunes.

+0

Aceptado. Muy agradable. –

5

TCP es un protocolo confiable que asegura que sus paquetes lleguen a su destino y se utiliza en aplicaciones donde todos los datos deben ser transmitidos con precisión entre las partes. TCP requiere que ambas partes negocien una conexión antes de que pueda iniciarse la transferencia de datos y es un protocolo flexible ya que repetidamente reenviará un paquete hasta que el destinatario lo reciba.

UDP no es confiable en el sentido de que permite que algunos paquetes se pierdan en tránsito. Algunas aplicaciones de UDP se encuentran en la transmisión de películas, donde puedes permitirte perder un fotograma y no poner en peligro la calidad de la película. UDP no necesita vincularse entre las dos partes y a menudo se lo considera una alternativa ligera al TCP.

Una buena mesa se encuentra aquí: TCP vs UDP

+0

La garantía de entrega por paquetes es solo una de las diferencias. –

1
+1

-1. "Buscar en google" es la peor cosa que puedes hacer en SO. –

+0

@ e-satis: Es por eso que también agrego enlaces a los hits relevantes. – chris

1

This website ofrece probablemente la explicación más simple a la diferencia real de UDP y TCP. Desde el punto de vista de la implementación, vea this question.

Para una respuesta breve: TCP funciona como una carta registrada cuando UDP es como una carta normal, con este último nunca se sabe si el destinatario recibió el paquete enviado.

+0

+1 para la analogía de la letra. –

0

chris tiene razón! Un enlace elegante que se cayó de google es: http://www.skullbox.net/tcpudp.php

+1

No, no lo es. Por favor, lea las reglas de SO antes de hacer tales declaraciones. Las discusiones sobre qué hacer y qué no hacer se discuten en Meta SO, y "buscar awsing en Google" no tiene ningún valor agregado y no son bienvenidas en este sitio web: http://meta.stackexchange.com/questions/76195/how-to-deal-have-you-tried-google-comments –

+0

@ e-satis: No creo que mi respuesta califique como "¿Has probado Google?". Vinculaba documentos relevantes, simplemente no copié y pegué los contenidos en SO. – chris

+0

@ e-satis: OK Veo su punto, pero había algunos enlaces relevantes detrás de mis respuestas y chris. El contenido de estos enlaces puede ayudar.Evidentemente, éramos vagos ya que podríamos haber elaborado (comprimido) los contenidos que encontramos y reformularlos aquí. Me disculpo por esto y veo que contestar una pregunta tan ampliamente formulada probablemente no sea el lugar correcto aquí. – fausto

2

La respuesta de P.R. es en su mayoría correcta, pero incompleta.

TCP es un protocolo de flujo confiable conectado protocolo. Su visión de los datos es la de una secuencia bidireccional de bytes entre hosts: los bytes que envíe llegarán al otro extremo en el mismo orden, al menos en lo que respecta a la aplicación (el sistema operativo reorganizará los paquetes si es necesario).

UDP es un datagrama desconectado protocolo. Su visión de los datos es la de los datagramas discretos, o mensajes, sin garantía de que estos mensajes realmente lleguen a su destinatario, o que lleguen en el orden en que fueron enviados. Garantiza que si llega un mensaje, llega en su totalidad y sin modificaciones.

Cuestiones relacionadas