Usuario:ManuelRomero/net
De WikiEducator
< Usuario:ManuelRomero
Revisión a fecha de 11:20 7 may 2012; ManuelRomero (Discusión | contribuciones)
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
Contenido
- 1 Comunicaciones y redes
- 2 Definición
- 3 Definición
- 4 Objetivo
Comunicaciones y redes
Conceptos básicos de redes
'Red' Conjunto de dispositivos interconectados con la capacidad de intercambiar y compartir recursos |
- Idea de malla o red de pescar
- Puedo ir de un nodo o dispositivo a cualquier otro nodo o dispositivo sin abandonar la red
- Existen diferentes tipos de redes
- La más conocida y usada la red de tipo Tcp/ip o red de internet (red de redes)
- Necesidad de indentificar de forma única cada dispositivo de la red
- Necesidad de que el emisor conozca la identificación del dispositivo o nodo con el que quiere contactar
Términos usados en redes
- Protocolo: Un programa que implementa la comunicación entre dos elementos
- A nivel de aplicación lo invoca el usuario
- A otro nivel es parte del kernel del SO
- Servicio
- Modelo de referencia: 'Capas del modelo'
- Este tema está desarrollado de forma más detellada en muchos sitios
- Puedes acceder al siguiente url para poder ver apuntes de Cisco sobre la red y los protocolos
Podemos ver el siguiente corto para entender un poco más de redes
http://www.youtube.com/watch?v=XeldfbDijUY&feature=related
Protocolo conjunto de reglas y normas establecidas para que dos partes se puedan entender |
- Ejemplo: Un director chino quiere hacer un negocio con un director alemán, entre ellos directamente no se puede entender:
Modelo de referencia OSI Vs TCP/IP
- PDU Información de cada una de las capas
- Cabecera Datos que permiten que cada capa realice su cometido
- Aplicacion Interactúa con el usuario, DNS, HTTP
- Transporte TCP UDP Puerto
- Red|Internet IP (ICMP, ARP/RARP) Direcciones IP (red/host) Enrutar: encontrar el camino para llegar a alcanzar la red destino
- Enlace|Acceso al medio Ethernet, Token Ring, Frame Relay (tecnologías de red) Trama Direcciones MAC Cola Verificar validez de la trama
Capas del modelo OSI
Proceso de encapsulacion y desencapsulacion
Modelo TCP/IP
Concepto de socket y capa de transporte
- En la capa de transporte tenemos dos protocolos
- TCP Seguro, orientado a la conexion y con control de flujo, lento y pesado
- UDP rápidlo, ligero, no seguro, no orientado a la conexión sin control de flujo
Ambos identifican con un puerto la aplicación/conversación concreta a la que va destinada el paquete
- Socket
- Representa los terminales de la conexión entre dos máquinas o servicios
- Estos terminales se unen por la red física de la cual no tenemos porque saber absolutamente nada
- Los socket son creados por el sistema operativo
- El API de java java.net y java.nio tienen métodos para que el programa pueda invocar al SO para que cree un socket
- el socket tiene métodos para poder envier mensajes a otras aplicciones las cuales los recibierán en su socket
- La aplicacion tiene métodos para que el so cree un socket para usar
- Existen dos tipos de socket
- socket activos
- Se conecta con el servidor, envía y recibe datos, se ubican tanto en el cliente como en el servidor)
- socket pasivos
- Esperan conexiones de los clientes y se ubican al lado del servidor
- Un socket tiene información que le identifica
- Puerto
- Direccion IP
- Tipo de protocolo
Concepto cliente servidor
Pasos para realizar una aplicación clinete/servidor con TCP
- Se deben crear socket en el cliente (activos) y en el servidor (pasivos)
- El socket servidor se crea en un puerto que será el que establezca la conexión para la aplicación
- El socket pasivo se queda esperando o escuchando a que lleguen solicitudes por parte de otro socket activo por el puerto establecido (Sólo escucha ese puerto)
- El cliente lanza una solicitud de conexión al servidor
- El servidor acepta la solicitud (eso es lo esperado :))
- Se realizan intercambio de datos
- Se cierran las conexiónes
Identificadon un dispositivo de red
- Direccion IP
- URL Localizador Unico de Recurso
Formato para identificar un recurso en la red
servicio://maquina.dominio:puerto/camino/fichero
- Servicio
- Identifica el protocolo que vamos a usar para acceder
- máquina.dominio
- Identifica el nombre de la máquina dentre de un subdominio de un dominio o directamente dentro de un dominio
- Camino
- Es el path dentro de la máquina donde se ubica el recurso
- Fichero
- El recurso al que quiero acceder
Clases de java para desarrollo de comunicaciones
Paquete java.net java.nio
- Clases para el API con socket del SO
- ServerSocket ==> Permite definir socket pasivos
- Socket ==>Permite definir socket activos
- Clases para trabajar con URL
- URL
- InetAddress ==>
- Excepciones
- ServerException
- UnknownServiceException
- UnknownHostException
Ejemplo 1
Implementar un programa que me de información del host al que me conecto vía http
import java.io.*; import java.net.*; public class ConexionWeb { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Socket socket = null; try{ InetAddress direccion = InetAddress.getByName("eina.unizar.es"); System.out.println(direccion); socket = new Socket(direccion,80); System.out.println("Conectado a "+socket.getInetAddress()); System.out.println("Puerto destino :"+socket.getPort()); System.out.println("Puerto origen "+socket.getLocalPort()); System.out.println("Y la direccon loncal "+socket.getLocalAddress()); }catch(UnknownHostException e){ System.out.println("No se ha podido encontrar el host destino"); }catch(IOException e){ System.out.println("Error creaando el socket" +e.getMessage()); } } }