Programación Concurrente En Java
Sockets orientados a conexión Sockets no orientados a conexión
UNIVERSIDADE DA CORUÑA
Java: Distribuido
UNIVERSIDADE DA CORUÑA
• Java se ha construido con extensas capacidades de interconexión TCP/IP. Existen librerías de rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite a los programadores acceder a la información a través de la red con tanta facilidad como a los ficheros locales. • Java en sí no es distribuido, sino que proporciona las librerías y herramientas para que los programas puedan ser distribuidos, es decir, que se corran en varias máquinas, interactuando.
Octubre 2007
Laboratorio de Redes de Comunicaciones
2
Java: Distribuido
•Pensado para su aplicación en redes. • Soporta varios niveles de conectividad en red:
Permite abrir un URL RMI Permite trabajar con “sockets”
UNIVERSIDADE DA CORUÑA
• Permite crear de forma sencilla, tanto aplicaciones cliente como servidor.
Octubre 2007
Laboratorio de Redes de Comunicaciones
3
Clientes y servidores
• Aplicaciones Cliente/Servidor • Cliente:
–Programa que ejecuta el usuario – Solicita un servicio a una máquina
UNIVERSIDADE DA CORUÑA
• Servidor:
– Ofrece un servicio a múltiples clientes
• Ejemplos: telnet, ftp, web, echo
Octubre 2007
Laboratorio de Redes de Comunicaciones
4
Ejemplo: Servicio de telnet
UNIVERSIDADE DA CORUÑA
Ejecuta un telnet
Servidor de telnet: telnetd
Octubre 2007Laboratorio de Redes de Comunicaciones
5
Conceptos básicos de redes
• En Internet se utiliza la pila de protocolos TCP/IP para el establecimiento y realización de conexiones, basado en un conjunto de protocolos organizados en diferentes niveles: Enlace / Red / Transporte / Aplicación. Normalmente, cuando se escriben aplicaciones Java en Red se programa a nivel de aplicación.Es posible realizar programas a más bajo nivel utilizando la API java.net => nivel de transporte => TCP /UDP.
UNIVERSIDADE DA CORUÑA
Capa de Aplicación (HTTP, ftp, telnet) Capa de Transporte (TCP, UDP) Capa de Red (IP) Capa de Enlace (Ethernet, ...)
•
•
Octubre 2007
Laboratorio de Redes de Comunicaciones
6
Capa de Transporte: TCP vs UDP
• TCP: Transmission Control Protocol
–Protocolo orientado a conexión – Provee un flujo de bytes fiable entre dos ordenadores.
• Llegada en orden, correcta, sin perder nada.
UNIVERSIDADE DA CORUÑA
– Protocolos del nivel de aplicación que usan TCP: telnet, http, ftp.
• UDP: User Datagram Protocol
– No orientado a conexión. – Envía paquetes de datos (datagramas) independientes sin garantías. –Protocolos del nivel de aplicación que usan UDP: tftp, ping. – Permite broadcast.
Octubre 2007 Laboratorio de Redes de Comunicaciones 7
¿Qué es un puerto?
• • • •
UNIVERSIDADE DA CORUÑA
Un ordenador tiene una o varias conexiones físicas a la red. A través de esas conexiones recibe los datos dirigidos a la máquina. ¿Cómo determinar a que aplicación enviar los datos? Puertos.
–TCP y UDP utilizan los puertos para dirigir los datos a la aplicación correcta de entre todas las que se estén ejecutando en la máquina.
Los datos transmitidos a través de Internet contienen información de direccionamiento que identifica a la máquina y puerto a los que van dirigidos.
– La máquina se identifica a través de una dirección IP de 32 bits. – Los puertos se identifican por un número de 16 bits.
•
Puertos:– Independientes para TCP y UDP. – 16 bits Rango: 0 a 65535. – Reservados: 0 a 1023 (“well known ports”)
• Para servicios conocidos: HTTP,FTP, … • No deberían ser utilizados por aplicaciones de usuario.
Octubre 2007
Laboratorio de Redes de Comunicaciones
8
TCP
UNIVERSIDADE DA CORUÑA
• Una aplicación servidora se registra en un puerto concreto.
–...
Regístrate para leer el documento completo.