Documentos de Académico
Documentos de Profesional
Documentos de Cultura
10 Introduccion ProtocolosInternet PDF
10 Introduccion ProtocolosInternet PDF
De internet a la Web
1984:
1986:
1989:
1989:
Protocolos de Internet
Varios niveles
La web
est montada
sobre internet
...
TCP/UDP
IP
Protocolos de
Acceso a Red
Ethernet
Fibra ptica
IEEE 802.11 .11 (1-2 Mbps); .11a (hasta 54 Mbps); .11b (hasta 11 Mbps);
.11g (ms de 54 Mbps)
802.11n: siguiente generacin Wi-Fi
Direcciones IP
Paquete IP
Paquete IP
w.x.y.z
a.b.c.d
Paquete IP
NAT Bsico
TCP sobre IP
Paquete TCP
Servidor
Web
puerto
+
direccin IP
Paquete IP
puerto +
direccin IP
Paquete IP
Paquete IP
Servicios de soporte
Servicio de login
10
BitTorrent
11
12
13
Internet - DNS
Resolucin de nombres
Dado el nombre de un host (www.ucm.es), obtener su IP
(147.96.1.5)
Resolucin inversa de direcciones
Dado la IP, devuelve el nombre asociado
Resolucin de servidores de correo
Dado un nombre de dominio (gmail.com) obtener el servidor a
travs del cual debe realizarse la entrega del correo electrnico
(gmail-smtp-in.l.google.com)
14
Internet - DNS
int
com
edu
gov
mil
org
net
jp
es
fr
ar
java
us
Pases
Genricos
15
Internet - DNS
Funcionamiento
Navegador
mini-cach
Cliente email
Programas
cliente
Servidor DNS
Servidor DNS
cach local
cach local
Bsqueda
recursiva de
servidores DNS
ISP
Sistema operativo
Cliente
16
Internet - DNS
Servidores DNS
Raz
13 DNS root servers (letras A a M): 10 en Estados Unidos, 1 en
Suecia, 1 en Reino Unido y 1 en Japn
Mirrors (En Espaa hay una rplica del F, gestionada por Espanix)
Operadoras en Espaa: http://www.adslayuda.com/dns.html
17
Ejercicios DNS
host
Permite pedir informacin a servidores DNS sobre mquinas
Si se usa host sin parmetros lista los parmetros
hostwww.ucm.es
hosttawww.ucm.es
host147.96.1.15
dig (domain information groper)
Tiene ms opciones de control, por lo que es la ms til para
detectar problemas en la configuracin de los servidores de DNS
dig www.ucm.es
dig +tracewww.ucm.es
nslookup (tambin en windows)
Est deprecated en BIND 9. Mejor usar host
18
Modelo cliente-servidor
Servidor:
Cliente A
I/F
Cliente B
Servidor
Cliente:
Cliente N
Computador siempre on
Direccin IP permanente
Granja de servidores
(escalabilidad)
19
Cliente
Servidor
Lgica de la
aplicacin
GUI
Datos
20
Cliente/
Servidor
Cliente
Servidor
Lgica de la
aplicacin
GUI
Datos
C/S
C/S
C/S
C/S
C/S
Sistemas terminales
arbitrarios se comunican
directamente
Pares se conectan
intermitentemente y
cambian sus direcciones IP
Ningn nodo es
imprescindible: alta
robustez
Altamente escalable
Distribucin de costes
entre los usuarios
Difcil de administrar
22
BitTorrent, eDonkey
Redes P2P puras o totalmente descentralizadas
Todas las comunicaciones son directamente de usuario a usuario
Es algn usuario quien permite enlazar esas comunicaciones
No existe un servidor central que maneje conexiones de red ni direcciones
23
Bajo nivel
Sockets
Middleware
RPC
CORBA
DCOM
Java RMI
ODBC/JDBC (para acceso a bases de datos)
Servicios Web
24
Puertos en internet
inetd
/etc/services
echo
echo
daytime
ftp
telnet
smtp
http
...
7/tcp
7/udp
13/udp
21/tcp
23/tcp
25/tcp
80/tcp
Aplicacin
ftp
telnet
echo
Puerto
21
23
telnet
mail
TCP o UDP
paquete
direccin IP #puerto
32 bits
Datos
16 bits (0..65535)
(0..1023 estn reservados)
Protocolos y arquitecturas en internet
25
Sockets
26
Sockets
Tipos de sockets
Socket Raw
Permite acceder a la capa de software de red subyacente o a
protocolos de ms bajo nivel
Se utiliza para depuracin de cdigo de los protocolos
27
Socket streams
Establecimiento de conexin
Servidor
puerto
peticin de conexin
Cliente
puerto
puerto
conexin
28
Paquete java.io
Paquete java.net
Direccin internet
InetAddress
Datagramas
DatagramPacket: paquete (datagrama) a enviar/recibir
DatagramSocket: socket para enviar/recibir datagramas
Conexiones TCP (sockets)
ServerSocket: socket donde el servidor espera peticiones
Socket: implementa el socket de comunicaciones, con dos streams
(InputStream y OutputStream)
URL: Uniform Resource Locator, se refiere a un recurso del a Web
29
write
read
Socket
InputStream
write
Socket
OutputStream
InputStream
OutputStream
30
Crear un socket
SocketladoCliente;
ladoCliente =newSocket(maquina,numeroPuerto);
31
import java.net.*;
import java.io.*;
class ClienteEco {
public static void main(Stringargs[]){
final intPUERTOECO =7;
String maquina="localhost";
Socketeco =null;
BufferedReaderentrada;
PrintWritersalida;
BufferedReaderstdin =new BufferedReader (new InputStreamReader (System.in));
String texto;
32
try {
eco=new Socket(maquina,PUERTOECO);
salida =new PrintWriter(new OutputStreamWriter (eco.getOutputStream()),true);
entrada =new BufferedReader(new InputStreamReader (eco.getInputStream()));
if (eco!=null &&entrada!=null &&salida!=null){
while ((texto=stdin.readLine())!=null){
salida.println(texto);
System.out.println("echo:" +entrada.readLine());
}
salida.close();
entrada.close();
eco.close();
stdin.close();
}
}
catch (UnknownHostException e){
System.err.println("Mquinadesconocida:maquina");
}
catch (IOException e){
System.err.println("Falloenlaconexin:"+e);
}
}//main
}//ClienteEco
Juan Pavn - UCM 2012-13
33
34
import java.net.*;
import java.io.*;
class ServidorEco {
public static void main(Stringargs[]){
final intPUERTOECO =7;
ServerSockets =null;
Socketcliente=null;
BufferedReader entrada;
PrintWritersalida;
String texto;
35
try {
s=new ServerSocket (PUERTOECO);
cliente=s.accept();
salida =new PrintWriter(new OutputStreamWriter(
cliente.getOutputStream()),true );
entrada =new BufferedReader(new InputStreamReader
(cliente.getInputStream()));
if (cliente!=null &&entrada!=null &&salida!=null)
while (true ){
texto=entrada.readLine();
salida.println(texto);
System.out.println("echo:" +texto);
}
}catch (IOException e){
System.err.println("Falloenlaconexion:"+e);
}
}//main
}//ServidorEco
36
Servidor Eco MT
puerto
peticin de conexin
Cliente
Hebra Eco
puerto
crea
puerto
conexin
37
import java.net.*;
import java.io.*;
public class ServidorEcoMT {
public static void main(Stringargs[]){
final intPUERTOECO =7;
ServerSockets =null;
try {
s=new ServerSocket (PUERTOECO);
while (true )
new HebraEco (s.accept()).start();
}catch (IOException e){
System.err.println("Falloenlaconexion:"+e);
}
}//main
}//ServidorEco
38
39
Clase DatagramPacket
Clase DatagramSocket
DatagramSocket puertoDatagramas;
puertoDatagramas =newDatagramSocket (numeroPuerto);
40
import java.net.*;
import java.io.*;
class ClienteEcoDatagrama {
public static void main(Stringargs[]){
final intPUERTOECO =7;
BufferedReader stdIn =new BufferedReader (new InputStreamReader (System.in));
String texto,recibido;
byte[]buf =new byte[256];
41
42
URL
Clase URL
URLjavasoft =newURL(http://www.javasoft.com/);
URLjavadownload =newURL(javasoft,download.html);
43
URL
Lectura de un URL
import java.io.*;
import java.net.*;
class EjemploLecturaURL {
public static void main(String[]args){
try {
URLucm =newURL("http://www.ucm.com/");
DataInputStream dis =new DataInputStream(ucm.openStream());
String inputLine;
while ((inputLine =dis.readLine())!=null){
System.out.println(inputLine);
}
dis.close();
}catch (MalformedURLException me){
System.out.println("MalformedURLException:" +me);
}catch (IOException ioe){
System.out.println("IOException:" +ioe);
}
}
}
Juan Pavn - UCM 2012-13
44
Ejercicios
1. La clase java.net.NetworkInterface tiene el mtodo
getHardwareAddress(), que permite obtener la direccin MAC de un
dispositivo. Haz un programa para imprimir la direccin MAC de
tu PC
2. El mtodo isReachable() de la clase InetAddress permite
comprobar que el host remoto es alcanzable y est activo. Haz
un programa que haga ping al host que se d como entrada
3. Cmo se puede conseguir la direccin IP del localhost?
4. Escribe un programa que escanee los puertos de un host dado
Se trata de hacer un bucle que intente establecer conexin (abrir
socket) con todos los puertos del host, desde 0 a 65535
45
Bibliografa
46