El Protocolo UDP

10
El protocolo TCP Contrariamente a UDP, el protocolo TCP está orientado a conexión. Cuando una máquina A envía una máquina B, la máquina B es informada de la lleada de datos, ! confirma su "uena recepció interviene el control C#C de datos que se "asa en una ecuación matemática que permite verific interidad de los datos transmitidos. De este modo, si los datos reci"idos son corruptos, el permite que los destinatarios soliciten al emisor que vuelvan a enviar los datos corruptos. El protocolo UDP( User Dataram Protocol$ User Dataram Protocol ( UDP ) es un protocolo del nivel de transporte basado en el intercambio de datagramas (Encapsulado de capa 4 Modelo OSI) Permite el env!o de datagramas a trav"s de la red sin #ue se $a%a establecido previamente una cone&i'n %a #ue el propio datagrama incorpo su iciente in ormaci'n de direccionamiento en su cabecera Tampoco tiene con irmaci'n ni contr de lu*o por lo #ue los pa#uetes pueden adelantarse unos a otros+ % tampoco se sabe si $a lleg correctamente %a #ue no $a% con irmaci'n de entrega o recepci'n Su uso principal es para protocolos como D,CP -OOTP D.S % dem/s protocolos en los #ue el intercambio de pa#uetes de la cone&i'n0descone&i'n son ma%ores o no son rentables con respecto a la in ormaci'n transmiti as! como para la transmisi'n de audio % v!deo en tiempo real donde no es posible reali1ar retransmisiones por los estrictos re#uisitos de retardo #ue se tiene en estos casos User Datagram Protocol (UDP) 2amilia3 %amilia de protocolos de &nternet 2unci'n3 &ntercam"io de dataramas a trav's de una red. Ubicaci'n en la pila de protocolos Aplicación D() , D*CP, (TP, ... Transporte UDP Red &P Enlace +t ernet , To-en #in, %DD&, ... Est/ndares3 #%C /0 1 2304$ Descripci'n t"cnica

description

protocolo udp

Transcript of El Protocolo UDP

El protocolo TCPContrariamente a UDP, el protocolo TCP est orientado a conexin. Cuando una mquina A enva datos a una mquina B, la mquina B es informada de la llegada de datos, y confirma su buena recepcin. Aqu interviene el control CRC de datos que se basa en una ecuacin matemtica 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.El protocolo UDP(User Datagram Protocol)User Datagram Protocol(UDP) es unprotocolodelnivel de transportebasado en el intercambio dedatagramas(Encapsulado de capa 4 Modelo OSI). Permite el envo de datagramas a travs de laredsin que se haya establecido previamente una conexin, ya que el propio datagrama incorpora suficiente informacin de direccionamiento en su cabecera. Tampoco tiene confirmacin ni control de flujo, por lo que los paquetes pueden adelantarse unos a otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmacin de entrega o recepcin. Su uso principal es para protocolos comoDHCP,BOOTP,DNSy dems protocolos en los que el intercambio de paquetes de la conexin/desconexin son mayores, o no son rentables con respecto a la informacin transmitida, as como para la transmisin de audio y vdeo en tiempo real, donde no es posible realizar retransmisiones por los estrictos requisitos de retardo que se tiene en estos casos.

User Datagram Protocol (UDP)

Familia:Familia de protocolos de Internet

Funcin:Intercambio de datagramasa travs de una red.

Ubicacin en la pila de protocolos

AplicacinDNS,DHCP,NTP, ...

TransporteUDP

RedIP

EnlaceEthernet,Token Ring,FDDI, ...

Estndares:RFC 768(1980)

Descripcin tcnicaUser Datagram Protocol (UDP)es un protocolo mnimo denivel de transporteorientado a mensajes documentado en elRFC768de laIETF.En lafamilia de protocolos de InternetUDP proporciona una sencilla interfaz entre lacapa de redy lacapa de aplicacin. UDP no otorga garantas para la entrega de sus mensajes (por lo que realmente no se debera encontrar en la capa 4) y el origen UDP no retiene estados de los mensajes UDP que han sido enviados a la red. UDP slo aademultiplexado deaplicacinysuma de verificacinde la cabecera y la carga til. Cualquier tipo de garantas para la transmisin de la informacin deben ser implementadas en capas superiores.+Bits 0 - 1516 31

0Puerto origenPuerto destino

32Longitud del MensajeSuma de verificacin

64Datos

La cabecera UDP consta de 4 campos de los cuales 2 son opcionales (con fondo rojo en la tabla). Los campos de los puertos fuente y destino son campos de16 bitsque identifican el proceso de origen y recepcin. Ya que UDP carece de un servidor de estado y el origen UDP no solicita respuestas, el puerto origen es opcional. En caso de no ser utilizado, el puerto origen debe ser puesto a cero. A los campos del puerto destino le sigue un campo obligatorio que indica el tamao enbytesdeldatagramaUDP incluidos los datos. El valor mnimo es de 8 bytes. El campo de la cabecera restante es una suma de comprobacin de 16 bits que abarca una pseudo-cabecera IP (con las IP origen y destino, el protocolo y la longitud del paquete UDP), la cabecera UDP, los datos y 0's hasta completar un mltiplo de 16. El checksum tambin es opcional en IPv4, aunque generalmente se utiliza en la prctica (en IPv6 su uso es obligatorio). A continuacin se muestra los campos para el clculo del checksum en IPv4, marcada en rojo la pseudo-cabecera IP.bits0 78 1516 2324 31

0Direccin Origen

32Direccin Destino

64ZerosProtocolLongitud UDP

96Puerto OrigenPuerto Destino

128Longitud del MensajeSuma de verificacin

160Datos

El protocolo UDP se utiliza por ejemplo cuando se necesita transmitir voz o vdeo y resulta ms importante transmitir con velocidad que garantizar el hecho de que lleguen absolutamente todos los bytes.[editar]PuertosUDP utiliza puertos para permitir la comunicacin entre aplicaciones. El campo de puerto tiene una longitud de 16 bits, por lo que el rango de valores vlidos va de 0 a 65.535. El puerto 0 est reservado, pero es un valor permitido como puerto origen si el proceso emisor no espera recibir mensajes como respuesta.Los puertos 1 a 1023 se llaman puertos "bien conocidos" y en sistemas operativos tipo Unix enlazar con uno de estos puertos requiere acceso como superusuario.Los puertos 1024 a 49.151 son puertos registrados.Los puertos 49.152 a 65.535 son puertos efmeros y son utilizados como puertos temporales, sobre todo por los clientes al comunicarse con los servidores.

TCP(Transmission Control Protocol)

Transmission Control Protocol(TCP)

Familia:Familia de protocolos de Internet

Funcin:Transporte confiable y bidireccional de datos.

Ubicacin en la pila de protocolos

AplicacinFTP,HTTP,SNMP,DNS, ...

TransporteTCP

RedIP

EnlaceEthernet,Token Ring,FDDI, ...

Estndares:RFC 793(1981)RFC 1323(1992)

Transmission Control Protocol(en espaolProtocolo de Control de Transmisin) oTCP, es uno de los protocolos fundamentales enInternet. Fue creado entre los aos1973y1974porVint CerfyRobert Kahn.Muchos programas dentro de una red de datos compuesta porcomputadoras, pueden usar TCP para crearconexionesentre ellos a travs de las cuales puede enviarse un flujo de datos. El protocolo garantiza que los datos sern entregados en su destino sin errores y en el mismo orden en que se transmitieron. Tambin proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma mquina, a travs del concepto depuerto.TCP da soporte a muchas de las aplicaciones ms populares de Internet (navegadores, intercambio de ficheros, clientes FTP, etc.) y protocolos de aplicacinHTTP,SMTP,SSHyFTP.

Informacin TcnicaTCP es un protocolo de comunicacin orientado a conexin y fiable delnivel de transporte, actualmente documentado porIETFen elRFC793. Es un protocolo de capa 4 segn el modelo OSI.Funciones de TCPEn la pila de protocolosTCP/IP, TCP es la capa intermedia entre elprotocolo de internet(IP) y laaplicacin. Habitualmente, las aplicaciones necesitan que la comunicacin sea fiable y, dado que la capa IP aporta un servicio de datagramas no fiable (sin confirmacin), TCP aade las funciones necesarias para prestar un servicio que permita que la comunicacin entre dos sistemas se efecte libre de errores, sin prdidas y con seguridad.Formato de los Segmentos TCPEn el nivel de transporte, los paquetes de bits que constituyen las unidades de datos de protocolo TCP se llaman "segmentos".El formato de los segmentos TCP se muestra en el siguiente esquema:Funcionamiento del protocolo en detalleLas conexiones TCP se componen de tres etapas: establecimiento de conexin, transferencia de datos y fin de la conexin. Para establecer la conexin se usa el procedimiento llamadonegociacin en tres pasos(3-way handshake). Para la desconexin se usa unanegociacin en cuatro pasos(4-way handshake). Durante el establecimiento de la conexin, se configuran algunos parmetros tales como el nmero de secuencia con el fin de asegurar la entrega ordenada de los datos y la robustez de la comunicacin.Establecimiento de la conexin (negociacin en tres pasos)

Negociacin en tres pasos oThree-way handshakeAunque es posible que un par de entidades finales comiencen una conexin entre ellas simultneamente, normalmente una de ellas abre unsocketen un determinadopuerto TCPy se queda a la escucha de nuevas conexiones. Es comn referirse a esto como apertura pasiva, y determina el lado servidor de una conexin. El lado cliente de una conexin realiza una apertura activa de un puerto enviando un paqueteSYNinicial al servidor como parte de la negociacin en tres pasos. En el lado del servidor se comprueba si el puerto est abierto, es decir, si existe algn proceso escuchando en ese puerto. En caso de no estarlo, se enva al cliente un paquete de respuesta con el bitRSTactivado, lo que significa el rechazo del intento de conexin. En caso de que s se encuentre abierto el puerto, el lado servidor respondera a la peticin SYN vlida con un paquete SYN/ACK. Finalmente, el cliente debera responderle al servidor con unACK, completando as la negociacin en tres pasos (SYN, SYN/ACK y ACK) y la fase de establecimiento de conexin.Es interesante notar que existe un nmero de secuencia generado por cada lado, ayudando de este modo a que no se puedan establecer conexiones falseadas (spoofing).

Transferencia de datos

Durante la etapa de transferencia de datos, una serie de mecanismos claves determinan la fiabilidad y robustez del protocolo. Entre ellos estn incluidos el uso del nmero de secuencia para ordenar los segmentos TCP recibidos y detectar paquetes duplicados, checksums para detectar errores, y asentimientos y temporizadores para detectar prdidas y retrasos.Durante el establecimiento de conexin TCP, losnmeros iniciales de secuenciason intercambiados entre las dos entidades TCP. Estos nmeros de secuencia son usados para identificar los datos dentro del flujo de bytes, y poder identificar (y contar) los bytes de los datos de la aplicacin. Siempre hay un par de nmeros de secuencia incluidos en todo segmento TCP, referidos alnmero de secuenciay alnmero de asentimiento. Un emisor TCP se refiere a su propio nmero de secuencia cuando habla de nmero de secuencia, mientras que con el nmero de asentimiento se refiere al nmero de secuencia del receptor. Para mantener la fiabilidad, un receptor asiente los segmentos TCP indicando que ha recibido una parte del flujo continuo de bytes. Una mejora de TCP, llamada asentimiento selectivo (SACK,Selective Acknowledgement) permite a un receptor TCP asentir los datos que se han recibido de tal forma que el remitente solo retransmita los segmentos de datos que faltan.A travs del uso de nmeros de secuencia y asentimiento, TCP puede pasar los segmentos recibidos en el orden correcto dentro del flujo de bytes a la aplicacin receptora. Los nmeros de secuencia son de 32 bits (sin signo), que vuelve a cero tras el siguiente byte despus del 232-1. Una de las claves para mantener la robustez y la seguridad de las conexiones TCP es la seleccin delnmero inicial de secuencia(ISN,Initial Sequence Number).Unchecksumde 16 bits, consistente en elcomplemento a unode lasuma en complemento a unodel contenido de la cabecera y datos del segmento TCP, es calculado por el emisor, e incluido en la transmisin del segmento. Se usa la suma en complemento a uno porque el acarreo final de ese mtodo puede ser calculado en cualquier mltiplo de su tamao (16-bit, 32-bit, 64-bit...) y el resultado, una vez plegado, ser el mismo. El receptor TCP recalcula el checksum sobre las cabeceras y datos recibidos. El complemento es usado para que el receptor no tenga que poner a cero el campo del checksum de la cabecera antes de hacer los clculos, salvando en algn lugar el valor del checksum recibido; en vez de eso, el receptor simplemente calcula la suma en complemento a uno con el checksum incluido, y el resultado debe ser igual a 0. Si es as, se asume que el segmento ha llegado intacto y sin errores.Hay que fijarse en que el checksum de TCP tambin cubre los 96 bit de la cabecera que contiene la direccin origen, la direccin destino, el protocolo y el tamao TCP. Esto proporciona proteccin contra paquetes mal dirigidos por errores en las direcciones.El checksum de TCP es una comprobacin bastante dbil. En niveles de enlace con una alta probabilidad de error de bit quiz requiera una capacidad adicional de correccin/deteccin de errores de enlace. Si TCP fuese rediseado hoy, muy probablemente tendra uncdigo de redundancia cclica(CRC) para control de errores en vez del actual checksum. La debilidad del checksum est parcialmente compensada por el extendido uso de un CRC en el nivel de enlace, bajo TCP e IP, como el usado en elPPPo enEthernet. Sin embargo, esto no significa que el checksum de 16 bits es redundante: sorprendentemente, inspecciones sobre el trfico de Internet han mostrado que son comunes los errores de software y hardware[citarequerida]que introducen errores en los paquetes protegidos con un CRC, y que el checksum de 16 bits de TCP detecta la mayora de estos errores simples.Los asentimientos (ACKsoAcknowledgments) de los datos enviados o la falta de ellos, son usados por los emisores para interpretar las condiciones de la red entre el emisor y receptor TCP. Unido a los temporizadores, los emisores y receptores TCP pueden alterar el comportamiento del movimiento de datos. TCP usa una serie de mecanismos para conseguir un alto rendimiento y evitar la congestin de la red (la idea es enviar tan rpido como el receptor pueda recibir). Estos mecanismos incluyen el uso deventana deslizante, que controla que el transmisor mande informacin dentro de los lmites delbufferdel receptor, y algoritmos de control de flujo, tales como el algoritmo deEvitacin de la Congestin(congestion avoidance), el decomienzo lento(Slow-start), el deretransmisin rpida, el derecuperacin rpida(Fast Recovery), y otros.

Tamao de ventana TCP

El tamao de la ventana de recepcin TCP es la cantidad de datos recibidos (en bytes) que pueden ser metidos en elbufferde recepcin durante la conexin. La entidad emisora puede enviar una cantidad determinada de datos pero antes debe esperar un asentimiento con la actualizacin del tamao de ventana por parte del receptor.Un ejemplo sera el siguiente: un receptor comienza con un tamao de ventana x y recibe y bytes, entonces su tamao de ventana ser (x - y) y el transmisor slo podr mandar paquetes con un tamao mximo de datos de (x - y) bytes. Los siguientes paquetes recibidos seguirn restando tamao a la ventana de recepcin. Esta situacin seguir as hasta que la aplicacin receptora recoja los datos delbufferde recepcin.

Escalado de ventana

Para una mayor eficiencia en redes de gran ancho de banda, debe ser usado un tamao de ventana mayor. El campo TCP de tamao de ventana controla el movimiento de datos y est limitado a 16 bits, es decir, a un tamao de ventana de 65.535 bytes.Como el campo de ventana no puede expandirse se usa un factor de escalado. La escala de ventana TCP (TCP window scale) es una opcin usada para incrementar el mximo tamao de ventana desde 65.535 bytes, a 1 Gigabyte.La opcin de escala de ventana TCP es usada solo durante la negociacin en tres pasos que constituye el comienzo de la conexin. El valor de la escala representa el nmero de bits desplazados a la izquierda de los 16 bits que forman el campo del tamao de ventana. El valor de la escala puede ir desde 0 (sin desplazamiento) hasta 14. Hay que recordar que un nmero binario desplazado un bit a la izquierda es como multiplicarlo en base decimal por 2.Fin de la conexin

Cierre de una conexin segn el estndar.La fase de finalizacin de la conexin usa una negociacin en cuatro pasos (four-way handshake), terminando la conexin desde cada lado independientemente. Cuando uno de los dos extremos de la conexin desea parar su "mitad" de conexin transmite un paqueteFIN, que el otro interlocutor asentir con un ACK. Por tanto, una desconexin tpica requiere un par de segmentos FIN y ACK desde cada lado de la conexin.Una conexin puede estar "medio abierta" en el caso de que uno de los lados la finalice pero el otro no. El lado que ha dado por finalizada la conexin no puede enviar ms datos pero la otra parte si podr.

Puertos TCP

TCP usa el concepto denmero de puertopara identificar a las aplicaciones emisoras y receptoras. Cada lado de la conexin TCP tiene asociado un nmero de puerto (de 16 bits sin signo, con lo que existen 65536 puertos posibles) asignado por la aplicacin emisora o receptora. Los puertos son clasificados en tres categoras: bien conocidos, registrados y dinmicos/privados. Los puertos bien conocidos son asignados por laInternet 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. Algunos ejemplos son:FTP(21),SSH(22),Telnet(23),SMTP(25) yHTTP(80). Los puertos registrados son normalmente empleados por las aplicaciones de usuario de forma temporal cuando conectan con los servidores, pero tambin pueden representar servicios que hayan sido registrados por un tercero (rango de puertos registrados: 1024 al 49151). Los puertos dinmicos/privados tambin pueden ser usados por las aplicaciones de usuario, pero este caso es menos comn. Los puertos dinmicos/privados no tienen significado fuera de la conexin TCP en la que fueron usados (rango de puertos dinmicos/privados: 49152 al 65535, recordemos que el rango total de 2 elevado a la potencia 16, cubre 65536 nmeros, del 0 al 65535)

Desarrollo de TCP

TCP es un protocolo muy desarrollado y complejo. Sin embargo, mientras mejoras significativas han sido propuestas y llevadas a cabo a lo largo de los aos, ha conservado las operaciones ms bsicas sin cambios desde elRFC 793, publicado en1981. El documentoRFC 1122(Host Requirements for Internet Hosts), especifica el nmero de requisitos de una implementacin del protocolo TCP. ElRFC 2581(Control de Congestin TCP) es uno de los ms importantes documentos relativos a TCP de los ltimos aos, describe nuevos algoritmos para evitar la congestin excesiva. En2001, elRFC 3168fue escrito para describir la Notificacin de Congestin Explcita (ECN), una forma de eludir la congestin con mecanismos de sealizacin. En los comienzos del siglo XXI, TCP es usado en el 95% de todos los paquetes que circulan porInternet. Entre las aplicaciones ms comunes que usan TCP estnHTTP/HTTPS(World Wide Web),SMTP/POP3/IMAP(correo electrnico) yFTP(transferencia de ficheros). Su amplia extensin ha sido la prueba para los desarrolladores originales de que su creacin estaba excepcionalmente bien hecha.

Que diferencias hay entre TCP Y UDP.

Aunque normalmente nos referimos aPuertos TCP y UDP, en realidad ms que de puertos debemos hablar deprotocolos, ya que no se trata de diferentes tipos de puertos, sino de diferentes protocolos utilizados para su gestin.

TCP (Transport Control Protocol) y UDP (User Datagram Protocol) son dos protocolos de puertos de comunicaciones que resultan imprescindibles para stas y que se comportan de forma diferente.

Entre estos dos tipos de protocolos, o ms bien entre su comportamiento en cuanto al tratamiento de transmisin de datos se refiere, hay una serie de diferencias que es conveniente conocer. Vamos a ver cuales son esas diferencias:

Protocolo TCP:

El protocoloTCPoTransport Control Protocolproporciona un transporte fiable de flujo de bits entre aplicaciones. Se utiliza para enviar de forma fiable grandes cantidades de informacin, liberando al programador de aplicaciones de tener que gestionar la fiabilidad de la conexin (retransmisiones, prdidas de paquetes, orden en que llegan los paquetes, duplicados de paquetes...), encargndose el propio protocolo de su gestin. Para ello, cada paquete de datos dedica 20 bytes al envo de informacin.

Esto hace que las transmisiones por TCP sean muy seguras... pero tambin lentas, ya que cada paquete hace una serie de comprobaciones sobre la integridad de los datos enviados, a lo que hay que aadir que al ser los paquetes de tamao fijo, si aumentamos el tamao dedicado al envo de informacin vamos a asegurarnos una mayor fiabilidad, pero tambin enviamos menos datos.

Protocolo UDP:

El protocoloUDP, oUser Datagram Protocolen cambio proporciona un nivel no fiable de transporte de datagramas, ya que aade muy poca informacin sobre los mismos (8 bytes, frente a los 20 bytes que vimos en el protocolo TCP). La primera consecuencia de esto es que por cada paquete enviado se enva una mayor cantidad de datos, pero tambin al reducir la informacin y comprobaciones de estos se aumenta la velocidad a la que se transfieren.

Este sistema lo utilizan, por ejemplo, NFS (Network File System) y RCP, que es un comando utilizado para transferir ficheros entre ordenadores, pero sobre todo es muy utilizado en la transferencia tanto de audio como de vdeo.

El protocolo UDP no usa ningn retardo para establecer una conexin, no mantiene estado de conexin y no hace un seguimiento de estos parmetros. Esto hace que un servidor dedicado a una aplicacin determinada pueda soportar ms clientes conectados cuando la aplicacin corre sobre UDP en lugar de sobre TCP.