Trabajo en Red

Los ordenadores que se ejecutan en Internet comunican unos con otros utilizando los protocolos TCP y UDP, que son protocolos de 4 capas.

Cuando se escriben programas Java que se comunican a travs de la red, se est programando en la capa de aplicacin. Tpicamente, no se necesita trabajar con las capas TCP y UDP -- en su lugar se puede utilizar las clases del paquete java.net. Estas clases porporcionan comunicacin de red independiente del sistema. Sin embargo, necesitas entender la diferencia entre TCP y UDP para decidir que clases Java deberan utilizar tus programas.

Cuando dos aplicacin se quieren comunicar una con otra de forma fiable, establecen una conexin y se envan datos a travs de la conexin. Esto es parecido a hacer una llamada de telfono --se establece una comunicacin cuando se marca el nmero de telfono y la otra persona responde. Se envan y reciben datos cuando se habla por el telfono y se escucha lo que le dice la otra persona. Al igual que la compaia telefnica, TCP garantiza que los datos enviados por una parte de la conexin realmente llegan a la otra parte y en el mismo orden en el que fueron enviados (de otra forma dara un error).

Definicin:

TCP es un protocolo basado en conexin que proporciona un flujo fiable de datos entre dos ordenadores.

Las aplicaciones que requieren fiabilidad, canales punto a punto para comunicarse, utilizan TCP para ello. Hyper Text Transfer Protocol (HTTP), File Transfer Protocol (ftp), y Telnet (telnet) son ejemplos de aplicaciones que requieren un canal de comunicacin fiable. El orden en que los datos son enviados y recibidos a travs de la Red es crtico para el xito de estas aplicaciones -- cuando se utiliza HTTP para leer desde una URL, los datos deben recibirse en el mismo orden en que fueron enviados, de otra forma tendrs un fichero HTML revuelto, un fichero Zip corrupto o cualquier otra informacin no vlida.

Para muchas aplicaciones esta garanta de fiabilidad es crtica para el xito de la transferencia de informacin desde un punto de la conexin al otro. Sin embargo, otras formas de comunicacin no necesitan esta comunicacin tan estricta y de hecho lo que hace es estorbar porque la conexin fiable anula el servicio.

Considera, por ejemplo, un servicio de hora que enva la hora actual a sus clientes cuando estos lo piden. Si el cliente pierde un paquete, tiene sentido volver a enviar el paquete? No porque la hora que recibira el cliente ya no sera exacta. Si el cliente hace dos peticiones y recibe dos paquetes del servidor en distinto orden, realmente no importa porque el cliente puede imaginarse que los paquetes no estn en orden y pedir otro. El canal fiable, aqu no es necesario, causando una degradacin del rendimiento, y podra estorbar a la utilidad del servicio.

Otro ejemplo de servicio que no necesita un canal de fiabilidad garantizada es el comando ping. El nico objetivo del comando ping es comprobar la comunicacin entre dos programas a travs de la red. De hecho, ping necesita conocer las caidas o los paquetes fuera de orden para determinar lo buena o mala que es la conexin. As un canal fiable invalidara este servicio.

El protocolo UDP proporciona una comunicacin no garantizada entros dos aplicaciones en la Red. UDP no est basado en la conexin como TCP. UDP enva paquetes de datos, llamados datagramas de una aplicacin a la otra. Enviar datagramas es como envar una carta a travs del servicio de correos: el orden de envo no es importante y no est garantizado, y cada mensaje es independiente de los otros.

Definicin:

UDP es un protocolo que enva paquetes de datos independientes, llamados datagramas desde un ordenador a otro sin garantas sobre su llegada. UDP no est basado en la conexin como TCP.

.Puertos

Generalmente hablando, un ordenador tiene una sola conexin fsica con la Red. Todos los datos destinados a un ordenador particular llegan a travs de la conexin. Sin embargo, los datos podra ser utilizados por diferentes aplicaciones ejecutndose en el ordenador. Entonces cmo sabe el ordenador a qu aplicacin enviarle los datos? A travs del uso de los puertos.

Los datos transmitidos por internet estn acompaados por una informacin de direccin que identifica el ordenador y el puerto al que estn destinados. El ordenador est identificado por su direccin IP de 32 bits, esta direccin se utiliza para envar los datos al ordenador correcto en la red. Los puertos estn identificados por un nmero de 16 bits, que TCP y UDP utilizan para envar los datos a la aplicacin correcta.

En aplicaciones basadas en la conexin, una aplicacin establece una conexin con otra aplicacin uniendo un socket a un nmero de puerto. Esto tiene el efecto de registrar la aplicacin con el sistema para recibir todos los datos destinados a ese puerto. Dos aplicaciones no pueden utilizar el mismo puerto: intentar acceder a un puerto que ya est utilizado dar un error.

En comunicaciones basadas en datagramas, los paquetes de datagramas contienen el nmero de puerto del destinatario.

Definicin:

Los protocolos TCP y UDP utilizan puertos para dirigir los datos de entrada a los procesos particulares que se estn ejecutando en un ordenador.

Los nmeros de puertos tienen un rango de 0 a 65535 (porque los puertos estn representados por un nmero de 16 bits). Los puertos entre los nmeros 0 - 1023 estn restringidos -- estn reservados para servicios bien conocidos como HTTP, FTP y otros servicios del sistema. Tus aplicaciones no deberan intentar unirse a estos puertos. Los puertos que estn reservados para los servicios bien conocidos como HTTP y FTP se llaman puertos bien conocidos.

A travs de las clases del paquete java.net, los programas Java puede utilizan TCP o UDP para comunicarse a travs de Internet. Las clases URL, URLConnection, Socket, y SocketServer utilizan el TCP para comunicarse a travs de la Red. Las clases DatagramPacket y DatagramServer utilizan UDP.

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
SIGUIENTE ARTÍCULO

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.