4.- Programación de comunicaciones en red Flashcards
4.1.- Comunicación entre aplicaciones
Red de ordenadores. Definición
Las redes de ordenadores están formadas por un conjunto de dispositivos que se encuentran conectados entre sí para poder intercambiar información entre ellos.
4.1.- Comunicación entre aplicaciones
Redes de ordenadores. Implementación
Para implementar estas redes, se utilizan unas tecnologías bastante complejas que dividen en capas para simplificar un poco las diferentes funciones que se deben llevar a cabo.
4.1.- Comunicación entre aplicaciones
Redes de ordenadores. Capas
Para implementar estas redes, se utilizan unas tecnologías bastante complejas que dividen en capas para simplificar un poco las diferentes funciones que se deben llevar a cabo. Cada una de estas capas será la encargada de una tarea determinada, poniendo en práctica los diferentes recursos (software y hardware) disponibles
4.1.- Comunicación entre aplicaciones
Modelo TCP/IP. Definicición
A continuación, es posible ver que se presentan unas encima de otras, como si fueran una pila, de tal forma que, cada capa se puede comunicar con las que tiene encima y debajo. En el modelo TCP/IP, se divide la comunicación en cuatro capas.
4.1.- Comunicación entre aplicaciones
Modelo TCP/IP. Capas
En el modelo TCP/IP, se divide la comunicación en cuatro capas.
* Application Layer
* Transport Layer
* Internet Layer
* Physical Network Layer
4.1.- Comunicación entre aplicaciones
Modelo TCP/IP. Capas. Application Layer
Application Layer
* HTTP
* FTP
* DNS
4.1.- Comunicación entre aplicaciones
Modelo TCP/IP. Capas. Transport Layer
Transport Layer
* TCP
* UDP
4.1.- Comunicación entre aplicaciones
Modelo TCP/IP. Capas. Internet Layer
Transport Layer
* IP
4.1.- Comunicación entre aplicaciones
Modelo TCP/IP. Capas. Physical Network Layer
Transport Layer
* Ethernet
* ATM
* DECnet
4.1.- Comunicación entre aplicaciones
Aplicaciones. Enviar mensajes
Cuando una aplicación quiere enviar un mensaje se siguen los siguientes pasos:
1. El emisor envía el mensaje, lo que significa que el mensaje pasa de la capa de aplicación a la capa de transporte.
2. En el nivel de transporte se divide el mensaje en paquetes para realizar el envío y lo pasa a la capa inferior, la capa de Internet.
3. En el nivel de Internet se comprueba el destino de los paquetes y se calcula la ruta que deben seguir; después se envían los paquetes al nivel de red.
4. El nivel de red se encarga de transmitir el paquete al receptor del mensaje.
5. El receptor recibe los paquetes en el nivel de red, en el más bajo, y los envía a la siguiente capa, que se corresponde con el nivel de Internet.
6. El nivel de Internet del receptor es el encargado de comprobar que son correctos. Si es así, los reenvía al nivel de transporte.
7. El nivel de transporte es el encargado de formar el mensaje con los paquetes recibidos y envía el mensaje a la última capa, el nivel de aplicación.
8. El nivel de aplicación recibe el mensaje correctamente.
4.1.- Comunicación entre aplicaciones
Aplicaciones. Enviar mensajes. Paso 1
El emisor envía el mensaje, lo que significa que el mensaje pasa de la capa de aplicación a la capa de transporte.
4.1.- Comunicación entre aplicaciones
Aplicaciones. Enviar mensajes. Paso 2
En el nivel de transporte se divide el mensaje en paquetes para realizar el envío y lo pasa a la capa inferior, la capa de Internet.
4.1.- Comunicación entre aplicaciones
Aplicaciones. Enviar mensajes. Paso 3
En el nivel de Internet se comprueba el destino de los paquetes y se calcula la ruta que deben seguir; después se envían los paquetes al nivel de red.
4.1.- Comunicación entre aplicaciones
Aplicaciones. Enviar mensajes. Paso 4
El nivel de red se encarga de transmitir el paquete al receptor del mensaje.
4.1.- Comunicación entre aplicaciones
Aplicaciones. Enviar mensajes. Paso 5
El receptor recibe los paquetes en el nivel de red, en el más bajo, y los envía a la siguiente capa, que se corresponde con el nivel de Internet.
4.1.- Comunicación entre aplicaciones
Aplicaciones. Enviar mensajes. Paso 6
El nivel de Internet del receptor es el encargado de comprobar que son correctos. Si es así, los reenvía al nivel de transporte.
4.1.- Comunicación entre aplicaciones
Aplicaciones. Enviar mensajes. Paso 7
El nivel de transporte es el encargado de formar el mensaje con los paquetes recibidos y envía el mensaje a la última capa, el nivel de aplicación.
4.1.- Comunicación entre aplicaciones
Aplicaciones. Enviar mensajes. Paso 8
El nivel de aplicación recibe el mensaje correctamente.
4.1.- Comunicación entre aplicaciones
Aplicaciones. Enviar mensajes. Paso 8
El nivel de aplicación recibe el mensaje correctamente.
4.2.- Roles Cliente y Servidor
Modelo cliente-servidor. Definición
El modelo cliente-servidor se basa en una arquitectura
en la que existen distintos recursos, a los que se denomina servidores, y un determinado número de clientes, es decir, de sistemas que requieren de esos recursos. Los servidores, proveem de recursos a los clientes.
4.2.- Roles Cliente y Servidor
Modelo cliente-servidor. Cliente. Definición
Sistemas que requieren de los recursos del servidor y los solicitan a través de peticiones al servidor
4.2.- Roles Cliente y Servidor
Modelo cliente-servidor. Servidor. Definición
Sistemas donde se almacenan los recursos que requieren el cliente y los proveen a través de respuestas al cliente.
4.2.- Roles Cliente y Servidor
Modelo cliente-servidor. En la actualidad
En la actualidad existen distintas aplicaciones que utilizan este modelo, como pueden ser el correo electrónico, mensajería instantánea y el servicio de Internet, es decir, se utiliza siempre que se accede a una página web.
4.2.- Roles Cliente y Servidor
Modelo cliente-servidor. Roles
Se debe tener en cuenta que, en este modelo, no se intercambian los roles entre clientes y servidores.
4.2.- Roles Cliente y Servidor
Modelo cliente-servidor. Sockets
Los sockets también son un ejemplo del modelo cliente-servidor y se estudiarán en este capítulo.
4.3.- Programación de aplicaciones en red. Librerías
Clase InetAddress. Definición
Es la clase que representa las direcciones IP.
4.3.- Programación de aplicaciones en red. Librerías
Clase InetAddress. Funciones
- byte[] getAddress ()
- static InetAddress getLocalHost ()
- static InetAddress getLocalHost(String host)
- String toString ()
4.3.- Programación de aplicaciones en red. Librerías
Clase InetAddress. Funcion byte[] getAddress ()
Devuelve la dirección IP sin procesar como objeto.
4.3.- Programación de aplicaciones en red. Librerías
Clase InetAddress. Funcion static InetAddress getLocalHost ()
Devuelve la dirección IP de la máquina.
4.3.- Programación de aplicaciones en red. Librerías
Clase InetAddress. Funcion static InetAddress getLocalHost (String host)
Devuelve la dirección IP de la máquina especificada.
4.3.- Programación de aplicaciones en red. Librerías
Clase InetAddress. Funcion String toString ()
Convierte la dirección IP en una cadena.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Definición
Es la clase que representa un localizador de recursos uniforme (URL), es decir, representa la dirección del recurso en Internet.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. URL. Definición
Una URL es un conjunto de caracteres que permiten denominar de forma única los recursos en Internet, de esta forma facilita el acceso a ellos.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. URL. Formato
El formato de una URL es el siguiente: protocolo://máquina:puerto/ruta_fichero
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. URL. Usuario y contraseña
Si es necesario la identificación para acceder a ese recurso, el usuario y contraseña se deben indicar delante de la máquina, de forma que la URL quedaría: protocolo:/usuario:contraseña@máquina:puerto/ruta_fichero
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Constructores
Existen diferentes constructores
Existen distintas formas de crear un objeto de esta clase, dependiendo de los parámetros de los que se disponga. Por ello, existen diferentes constructores:
* URL (String url)
* URL (String protocol, String host, int port, String file)
* URL (String protocol, String host, String file)
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Constructores. URL (String url)
Existen diferentes constructores
Crea un objeto URL de la cadena recibida.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Constructores. URL (String protocol, String host, int port, String file)
Existen diferentes constructores
Crea un objeto URL con los datos recibidos.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Constructores. URL (String protocol, String host, String file)
Existen diferentes constructores
Crea un objeto URL con los datos recibidos.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Funciones
Existen diferentes constructores
- String getFile ()
- String getHost ()
- String getPath ()
- int getPort ()
- String getProtocol ()
- URI toURI ()
- URLConnection openConnection ()
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Funciones. String getFile ()
Existen diferentes constructores
Devuelve el nombre del archivo.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Funciones. String getHost ()
Existen diferentes constructores
Devuelve el nombre de la máquina.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Funciones. String String getPath ()
Existen diferentes constructores
Devuelve el nombre de la ruta de acceso.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Funciones. int getPort ()
Existen diferentes constructores
Devuelve el puerto que ocupa.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Funciones. String getProtocol ()
Existen diferentes constructores
Devuelve el protocolo.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Funciones. URI toURI ()
Existen diferentes constructores
Devuelve el URI equivalente a esta URL.
4.3.- Programación de aplicaciones en red. Librerías
Clase URL. Funciones. URLConnection openConnection ()
Existen diferentes constructores
Crea y devuelve una conexión al objeto
remoto de esta URL.
4.3.- Programación de aplicaciones en red. Librerías
Clase URLConnection. Definición
Esta clase permite trabajar con conexiones realizadas a la URL especificada.
4.3.- Programación de aplicaciones en red. Librerías
Clase URLConnection. Objeto URL. Función openConnection ()
Ccrear un objeto de la clase URL e invocar al método openConnection().
- URL url = new URL (“https://www.ilerna.es/
ca/fp-a-distancia”); - URLConnection urlCon = url.openConnection();
Con esto obtenemos una conexión al objeto URL referenciado. Las instancias se esta clase se pueden utilizar tanto para leer como para escribir al recurso referenciado por la URL.
4.3.- Programación de aplicaciones en red. Librerías
Clase URLConnection. Funciones
- abstract void connect ()
- InputStream getInputStream ()
- OutputStream getOutourStream ()
- URL getURL()
4.3.- Programación de aplicaciones en red. Librerías
Clase URLConnection. Funciones. abstract void connect ()
Establece la conexión con el recurso de la URL. Una vez que se obtiene la conexión se pueden leer y escribir datos en dicha conexión.
4.3.- Programación de aplicaciones en red. Librerías
Clase URLConnection. Funciones. InputStream getInputStream ()
Devuelve un flujo de entrada para leer los
datos del recurso.
4.3.- Programación de aplicaciones en red. Librerías
Clase URLConnection. Funciones. OutputStream getOutourStream ()
Devuelve un flujo de salida para escribir datos en el recurso.
4.3.- Programación de aplicaciones en red. Librerías
Clase URLConnection. Funciones. URL getURL()
Devuelve la URL de la conexión.
4.4.- Sockets
Socket. Definición
Un socket es un mecanismo que permite la comunicación entre aplicaciones a través de la red, es decir, abstrae al usuario del paso de la información entre las distintas capas. Su función principal es crear un canal de comunicación entre las aplicaciones y simplificar el intercambio de mensajes.
4.4.- Sockets
Sockets. Abstracción
Abstrae al usuario del paso de la información entre las distintas capas. Su función principal es crear un canal de comunicación entre las aplicaciones y simplificar el intercambio de mensajes.
4.4.- Sockets
Sockets. Componentes
Un socket se define mediante la dirección IP de los dos dispositivos, el protocolo de transporte, y, por último, el puerto de cada uno de los dispositivos por el que se conectan.
4.4.- Sockets
Sockets. Puerto. Definición
Un puerto es el identificador que permite la comunicación entre los dispositivos de una red. Una máquina solo puede tener un único puerto asignado.
4.4.- Sockets
Sockets. Servidor
La máquina denominada servidor tiene un puerto asignado, que es el encargado de quedarse a la espera de que algún cliente realice cualquier petición.
4.4.- Sockets
Sockets. Cliente
Para que un cliente pueda comunicarse con un servidor, debe conocer su dirección IP y el puerto asignado, y realizar la petición.
4.4.- Sockets
Sockets. Servidor. Respuesta
Cuando el servidor recibe la petición, si decide aceptarla, asigna el puerto para la comunicación, de forma que el socket conocido por el cliente queda libre para recibir a nuevos clientes.
4.4.- Sockets
Sockets. Cliente. Petición
Como la petición la realiza desde el puerto del cliente, el servidor ya conoce su puerto, y es el cliente el que aceptará la conexión, y después, asignará el puerto para el envío de mensajes.