Conceptos avanzados - Área de Ingeniería Telemática

Anuncio
Conceptos avanzados
Dr. Daniel Morató
Area de Ingeniería Telemática
Departamento de Automática y Computación
Universidad Pública de Navarra
[email protected]
Laboratorio de Programación de Redes
http://www.tlm.unavarra.es/asignaturas/lpr
Contenido
 UDP y TCP
 NAT
 Proxy
 El Laboratorio de Telemática
17 Nov
Conceptos avanzados
1/21
Cómo se transporta IP
• El paquete IP atraviesa diferentes redes hasta llegar al destino
El paquete IP
El (mismo) paquete IP
Trama Ethernet
transporta el paquete IP
Trama PPP (serie)
transporta el paquete IP
(etc...)
17 Nov
Conceptos avanzados
2/21
TCP y UDP
• Otros dos protocolos muy importantes de la familia TCP/IP son
TCP = Transmission Control Protocol y UDP = User Datagram Protocol
• Añaden funcionalidades a IP
• “Emplean” IP :
Paquete IP
Paquete IP
Campo
protocolo=6
Cabecera TCP
Campo
protocolo=17
Datos IP
Datos IP
Segmento TCP
Datagrama UDP
Datos que envía
la aplicación
Cabecera UDP
Datos que envía
la aplicación
• Sencilla comunicación entre aplicaciones sobre TCP o UDP
empleando APIs (Application Programming Interfaces)
17 Nov
Conceptos avanzados
3/21
Encapsulación
Información que desea enviar la aplicación
TCP o UDP
Paquete IP
Bits que circulan por el cable
17 Nov
Conceptos avanzados
4/21
Características de UDP
 Los datos enviados a otra aplicación en otra máquina
pueden perderse
 Si se envían varios bloques de información pueden
llegar desordenados
 No hay conexión. Para cada bloque de información que
se desea enviar hay que especificar el destino
 No intenta controlar la congestión en la red
17 Nov
Conceptos avanzados
5/21
Cabecera UDP
Datagrama UDP
Cabecera UDP:
15 16
0
Puerto origen
Longitud
31
Puerto destino
Checksum
Coloca el valor de puerto
destino que identifica a la
La aplicación selecciona aplicación destino
un puerto origen
Datos de la aplicación
Internet
Aplicación
La aplicación indica al
sistema operativo que le
entregue los datagramas
UDP dirigidos a cierto
puerto
Datagrama UDP
Paquete IP
Protocolo=17 (UDP)
IPs origen y destino
Trama Ethernet
Ethertype 0x0800 (IP)
17 Nov
Según el puerto destino entrega
los datos a la aplicación
Conceptos avanzados
Aplicación
6/21
Características de TCP
 Los datos que envíe una aplicación a otra en otra máquina seguro
que llegarán (recupera pérdidas)
 Si la aplicación envía varios bloques de información éstos llegarán
en el mismo orden en que se enviaron (mantiene el orden de
secuencia)
 Antes de poder enviar datos hay que “establecer una conexión”.
Especificar entre qué par de aplicaciones en qué máquinas será la
comunicación (orientado a conexión)
 Ambos extremos de la conexión pueden enviar información al otro
extremo simultáneamente (full-duplex)
 Intenta no congestionar la red
17 Nov
Conceptos avanzados
7/21
Cabecera TCP
15 16
0
Segmento TCP
Control bits:
U
R
G
17 Nov
4bit Header
Length
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
31
Puerto origen
Puerto destino
Número de secuencia
Número de confirmación
Reservado Control bits
Tamaño de ventana
Checksum
Urgent pointer
Opciones
Conceptos avanzados
8/21
Establecimiento de la conexión
CLOSED
CLOSED
Open activo, snd SYN
LISTEN
CLOSED
SYN, Seq=ISN
Close
SYN SENT
Open pasivo
SYN, ACK,
Seq=ISN’, ACKn =ISN+1
SYN RCVD
LISTEN
rcv SYN /
snd SYN,ACK
ESTABLISHED
ACK, ACKn =ISN’+1
Close
ESTABLISHED
SYN
RCVD
snd SYN
SYN
SENT
rcv SYN / snd ACK
rcv SYN, ACK /
snd ACK
rcv ACK
Close, snd FIN
ESTABLISHED
Close, snd FIN
rcv FIN / snd ACK
CLOSE
WAIT
FIN
WAIT-1
rcv ACK
rcv FIN /
snd ACK
CLOSING
rcv FIN, ACK /
snd ACK
Close, snd FIN
LASTACK
rcv ACK
rcv ACK
FIN
WAIT-2
17 Nov
Conceptos avanzados
rcv FIN /
snd ACK
TIMEWAIT
CLOSED
Timeout 2xMSL
9/21
Envío de datos
CLOSED
CLOSED
Open activo, snd SYN
LISTEN
CLOSED
SYN, Seq=ISN
Close
SYN SENT
Open pasivo
SYN, ACK,
Seq=ISN’, ACKn =ISN+1
SYN RCVD
LISTEN
rcv SYN /
snd SYN,ACK
ESTABLISHED
ACK, ACKn =ISN’+1
Datos(1460), Seq=ISN+1,
ACK, ACKn =ISN’+1
Close
ESTABLISHED
SYN
RCVD
snd SYN
SYN
SENT
rcv SYN / snd ACK
rcv SYN, ACK /
snd ACK
rcv ACK
Close, snd FIN
ESTABLISHED
Close, snd FIN
ACK, ACKn =ISN+1461
.
.
rcv FIN / snd ACK
CLOSE
WAIT
FIN
WAIT-1
rcv ACK
rcv FIN /
snd ACK
CLOSING
rcv FIN, ACK /
snd ACK
Close, snd FIN
LASTACK
rcv ACK
rcv ACK
FIN
WAIT-2
17 Nov
Conceptos avanzados
rcv FIN /
snd ACK
TIMEWAIT
CLOSED
Timeout 2xMSL
10/21
Envío de datos
15 16
0
Segmento TCP
Control bits:
U
R
G
4bit Header
Length
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Puerto origen
Puerto destino
Número de secuencia
Número de confirmación
Reservado Control bits
Tamaño de ventana
Checksum
Urgent pointer
Opciones
Coloca el valor de puerto
destino que identifica a la
La aplicación selecciona aplicación destino
un puerto origen
Datos de la aplicación
31
Internet
Aplicación
Segmento TCP
Paquete IP
Protocolo=6 (TCP)
IPs origen y destino
Trama Ethernet
Ethertype 0x0800 (IP)
17 Nov
Según el puerto destino entrega
los datos a la aplicación
Conceptos avanzados
Aplicación
11/21
Cierre de la conexión
CLOSED
CLOSED
Open activo, snd SYN
LISTEN
CLOSED
SYN, Seq=ISN
Close
SYN SENT
Open pasivo
SYN, ACK,
Seq=ISN’, ACKn =ISN+1
SYN RCVD
LISTEN
rcv SYN /
snd SYN,ACK
ESTABLISHED
ACK, ACKn =ISN’+1
Close
ESTABLISHED
Datos(1460), Seq=ISN+1,
ACK, ACKn =ISN’+1
SYN
RCVD
snd SYN
SYN
SENT
rcv SYN / snd ACK
rcv SYN, ACK /
snd ACK
rcv ACK
Close, snd FIN
ESTABLISHED
Close, snd FIN
ACK, ACKn =ISN+1461
.
.
FIN, Seq=Anterior+1
CLOSE WAIT
CLOSE
WAIT
FIN WAIT-1
ACK, ACKn =Anterior+2
FIN WAIT-2
LAST ACK
CLOSED
17 Nov
FIN, Seq=Anterior’+1
ACK, ACKn =Anterior’+2
rcv FIN / snd ACK
FIN
WAIT-1
rcv ACK
rcv FIN /
snd ACK
CLOSING
rcv FIN, ACK /
snd ACK
Close, snd FIN
LASTACK
rcv ACK
rcv ACK
FIN
WAIT-2
TIMEWAIT
CLOSED
Conceptos avanzados
rcv FIN /
snd ACK
TIMEWAIT
CLOSED
Timeout 2xMSL
12/21
NAT
 NAT=Network Address Translation
 Otra propuesta de solución al problema del agotamiento del espacio
de direcciones
 Permite que una red que emplee direccionamiento privado se conecte
a Internet
 El router que conecta la red a Internet:
 Cambia la dirección IP privada por una dirección pública al reenviar un
paquete hacia el exterior
 Cambia la dirección IP pública por la correspondiente privada al reenviar
un paquete hacia el interior
 El cambio puede ser:
 Estático: una IP interna siempre se cambia por la misma IP pública
 Dinámico: existe un pool de IPs públicas y se establece una relación entre
las IPs internas y las de ese pool
 No se necesita reconfigurar los hosts de la red
 Si no todos los hosts de la red desean cursar tráfico con Internet
“simultáneamente” no hacen falta tantas direcciones como hosts.
17 Nov
Conceptos avanzados
13/21
NAT
(Ejemplo)
• La red interna tiene direccionamiento privado
• El interfaz del router tiene una dirección pública
• Además tiene un pool de direcciones publicas disponibles
• Cuando un host quiere enviar un paquete IP a un destino en
Internet el router NAT cambia la dirección IP origen antes de
reenviarlo
• El router NAT apunta la dirección por la que la ha cambiado
• Envía el paquete
Address pool
Cambia IP origen a:
130.206.166.1
IP origen: 10.0.0.1
IP destino: 65.43.23.45
10.0.0.1/24
10.0.0.2/24
130.206.166.1 <- 10.0.0.1
130.206.166.2
130.206.166.3
130.206.166.4
130.206.166.9/21
10.0.0.254/24
17 Nov
Conceptos avanzados
Internet
14/21
NAT
(Ejemplo)
• Cuando venga un paquete de esa IP destino vendrá dirigido a la
IP que colocó el router NAT
• El router NAT ve en su tabla la dirección IP interna a la que
corresponde y la cambia
• Envía el paquete
Address pool
Cambia IP destino a:
10.0.0.1
IP origen: 65.43.23.45
IP destino: 10.0.0.1
10.0.0.1/24
10.0.0.2/24
130.206.166.1 <- 10.0.0.1
130.206.166.2
130.206.166.3
130.206.166.4
130.206.166.9/21
IP destino:
130.206.166.1
10.0.0.254/24
17 Nov
Conceptos avanzados
Internet
15/21
NAT
(Ejemplo 2: Sobrecarga)
• Supongamos que por ejemplo solo hay 1 dirección pública
• Un host quiere enviar un paquete a otro externo
Address pool = 130.206.166.1
Prot Interna
TCP 10.0.0.1:1212
TCP
IP origen: 10.0.0.1, puerto: 1212
IP destino: 65.43.23.45, puerto: 25
10.0.0.1/24
Externa
65.43.23.45:25
Cambia IP origen a:
130.206.166.1
10.0.0.2/24
130.206.166.9/21
10.0.0.254/24
17 Nov
Pública
130.206.166.1:1212
Conceptos avanzados
Internet
16/21
NAT
(Ejemplo 2: Sobrecarga)
• Supongamos que por ejemplo solo hay 1 dirección pública
• Un host quiere enviar un paquete a otro externo
• Otro host quiere también enviar tráfico al exterior
Address pool = 130.206.166.1
Cambia IP origen a:
130.206.166.1
10.0.0.1/24
10.0.0.2/24
Prot Interna
TCP 10.0.0.1:1212
TCP 10.0.0.2:8976
Externa
65.43.23.45:25
201.0.91.7:80
130.206.166.9/21
10.0.0.254/24
TCP
IP origen: 10.0.0.2, puerto: 8976
IP destino: 201.0.91.7, puerto: 80
17 Nov
Pública
130.206.166.1:1212
130.206.166.1:8976
Conceptos avanzados
Internet
17/21
NAT
(Ejemplo 2: Sobrecarga)
• Supongamos que por ejemplo solo hay 1 dirección pública
• Un host quiere enviar un paquete a otro externo
• Otro host quiere también enviar tráfico al exterior
• Un host envía un paquete IP con el mismo puerto origen, IP
destino y puerto destino que una entrada en la cache
• La IP del pool podría ser simplemente la del interfaz externo
del router
Cambia el puerto
Address pool = 130.206.166.1
Cambia IP:puerto origen
a: 130.206.166.1:8977
10.0.0.1/24
10.0.0.2/24
Prot
TCP
TCP
TCP
Interna
10.0.0.1:1212
10.0.0.2:8976
10.0.0.1:8976
Externa
65.43.23.45:25
201.0.91.7:80
201.0.91.7:80
130.206.166.9/21
10.0.0.254/24
TCP
IP origen: 10.0.0.1, puerto: 8976
IP destino: 201.0.91.7, puerto: 80
17 Nov
Pública
130.206.166.1:1212
130.206.166.1:8976
130.206.166.1:8977
Conceptos avanzados
Internet
18/21
Proxy
• Normalmente es una máquina con un software de Proxy
• Puede hacer de proxy para numerosos servicios aunque el
más común es la Web
• El cliente, en vez de solicitar el documento al servidor lo
solicita al Proxy
• El proxy lo solicita al servidor
Proxy
Conexión TCP
(petición)
(documento)
17 Nov
Conexión TCP
Servidor Web
(petición)
Internet
(documento)
Conceptos avanzados
19/21
Proxy-cache
• El proxy puede guardar en cache los documentos que ha
obtenido por solicitudes anteriores
• Cuando le llega una nueva petición busca el documento en la
cache
• Si no lo encuentra lo pediría al servidor pero si lo encuentra lo
entrega directamente de la cache
Proxy
Conexión TCP
(petición)
(documento)
17 Nov
Servidor Web
Internet
Conceptos avanzados
20/21
Próximo día
Laboratorio de Telemática
Cuestiones
17 Nov
Conceptos avanzados
21/21
Descargar