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
Trama Ethernet
transporta el paquete IP
El (mismo) 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
• Añaden funcionalidades a IP
• “Emplean” IP :
y
UDP = User Datagram Protocol
Campo
protocolo=6
Paquete IP
Datos IP
Campo
protocolo=17
Paquete IP
Datos IP
Segmento TCP
Cabecera TCP
Datagrama UDP
Datos que envía
la aplicación
• Sencilla comunicación entre aplicaciones sobre TCP o UDP
Datos que envía
la aplicación
Cabecera 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
Si se envían varios bloques de información pueden
pueden perderse
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
Cabecera UDP:
0
Datagrama UDP
15 16
Puerto origen
Longitud
31
Puerto destino
Checksum
La aplicación selecciona
un puerto origen
Datos de la aplicación
Datagrama UDP
Paquete IP
Protocolo=17 (UDP)
IPs origen y destino
Trama Ethernet
Ethertype 0x0800 (IP)
Coloca el valor de puerto
destino que identifica a la
aplicación destino
Aplicación
Internet
aplicación
indica
La
sistema operativo que
entregue
los
UDP dirigidos
puerto
al
le
datagramas
a
cierto
Según el puerto destino entrega
los datos a la aplicación
Aplicación
17 Nov
Conceptos avanzados
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
Segmento TCP
Control bits:
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
0
Puerto origen
15 16
Puerto destino
31
Número de secuencia
Número de confirmación
Control bits
Tamaño de ventana
4bit Header
Length
Reservado
Checksum
Urgent pointer
Opciones
17 Nov
Conceptos avanzados
8/21
Establecimiento de la conexión
CLOSED
SYN SENT
ESTABLISHED
CLOSED
LISTEN
SYN, Seq=ISN
SYN, ACK,
Seq=ISN’, ACKn=ISN+1
SYN RCVD
ACK, ACKn=ISN’+1
ESTABLISHED
Open activo, snd SYN
CLOSED
Close
Open pasivo
Close
LISTEN
rcv SYN /
snd SYN,ACK
snd SYN
rcv SYN / snd ACK
SYN
RCVD
SYN
SENT
Close, snd FIN
rcv ACK
rcv SYN, ACK /
snd ACK
Close, snd FIN
ESTABLISHED
rcv FIN / snd ACK
rcv FIN /
snd ACK
FIN
WAIT-1
CLOSING
rcv ACK
rcv FIN, ACK /
snd ACK
rcv ACK
FIN
WAIT-2
rcv FIN /
snd ACK
TIMEWAIT
Timeout 2xMSL
17 Nov
Conceptos avanzados
CLOSE
WAIT
Close, snd FIN
LASTACK
rcv ACK
CLOSED
9/21
Envío de datos
CLOSED
SYN SENT
ESTABLISHED
CLOSED
LISTEN
SYN, Seq=ISN
SYN, ACK,
Seq=ISN’, ACKn=ISN+1
SYN RCVD
ACK, ACKn=ISN’+1
ESTABLISHED
Datos(1460), Seq=ISN+1,
ACK, ACKn=ISN’+1
ACK, ACKn=ISN+1461
.
.
Open activo, snd SYN
CLOSED
Close
Open pasivo
Close
LISTEN
rcv SYN /
snd SYN,ACK
snd SYN
rcv SYN / snd ACK
SYN
RCVD
SYN
SENT
Close, snd FIN
rcv ACK
rcv SYN, ACK /
snd ACK
Close, snd FIN
ESTABLISHED
rcv FIN / snd ACK
rcv FIN /
snd ACK
FIN
WAIT-1
CLOSING
rcv ACK
rcv FIN, ACK /
snd ACK
rcv ACK
FIN
WAIT-2
rcv FIN /
snd ACK
TIMEWAIT
Timeout 2xMSL
17 Nov
Conceptos avanzados
CLOSE
WAIT
Close, snd FIN
LASTACK
rcv ACK
CLOSED
10/21
Envío de datos
Segmento TCP
Control bits:
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
Coloca el valor de puerto
destino que identifica a la
aplicación destino
Aplicación
La aplicación selecciona
un puerto origen
Datos de la aplicación
Segmento TCP
Paquete IP
Protocolo=6 (TCP)
IPs origen y destino
Trama Ethernet
Ethertype 0x0800 (IP)
0
Puerto origen
15 16
Puerto destino
31
Número de secuencia
Número de confirmación
Control bits
Tamaño de ventana
4bit Header
Length
Reservado
Checksum
Urgent pointer
Opciones
Internet
Según el puerto destino entrega
los datos a la aplicación
Aplicación
17 Nov
Conceptos avanzados
11/21
Cierre de la conexión
CLOSED
SYN SENT
ESTABLISHED
CLOSED
LISTEN
SYN, Seq=ISN
SYN, ACK,
Seq=ISN’, ACKn=ISN+1
SYN RCVD
ACK, ACKn=ISN’+1
ESTABLISHED
Datos(1460), Seq=ISN+1,
ACK, ACKn=ISN’+1
ACK, ACKn=ISN+1461
.
.
FIN, Seq=Anterior+1
FIN WAIT-1
CLOSE WAIT
LAST ACK
ACK, ACKn=Anterior+2
FIN, Seq=Anterior’+1
FIN WAIT-2
ACK, ACKn=Anterior’+2
TIMEWAIT
CLOSED
CLOSED
17 Nov
Conceptos avanzados
Open activo, snd SYN
CLOSED
Close
Open pasivo
Close
LISTEN
rcv SYN /
snd SYN,ACK
snd SYN
rcv SYN / snd ACK
SYN
RCVD
SYN
SENT
Close, snd FIN
rcv ACK
rcv SYN, ACK /
snd ACK
Close, snd FIN
ESTABLISHED
rcv FIN / snd ACK
rcv FIN /
snd ACK
FIN
WAIT-1
CLOSING
rcv ACK
rcv FIN, ACK /
snd ACK
rcv ACK
FIN
WAIT-2
rcv FIN /
snd ACK
TIMEWAIT
Timeout 2xMSL
CLOSE
WAIT
Close, snd FIN
LASTACK
rcv ACK
CLOSED
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
130.206.166.1
130.206.166.2
130.206.166.3
130.206.166.4
<- 10.0.0.1
IP origen: 10.0.0.1
IP destino: 65.43.23.45
Cambia IP origen a:
130.206.166.1
10.0.0.1/24
10.0.0.2/24
130.206.166.9/21
10.0.0.254/24
Internet
17 Nov
Conceptos avanzados
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
IP origen: 65.43.23.45
IP destino: 10.0.0.1
Cambia IP destino a:
10.0.0.1
Address pool
130.206.166.1
130.206.166.2
130.206.166.3
130.206.166.4
<- 10.0.0.1
10.0.0.1/24
10.0.0.2/24
130.206.166.9/21
IP destino:
130.206.166.1
10.0.0.254/24
Internet
17 Nov
Conceptos avanzados
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
TCP
IP origen: 10.0.0.1, puerto: 1212
IP destino: 65.43.23.45, puerto: 25
Cambia IP origen a:
130.206.166.1
Address pool = 130.206.166.1
Prot Interna Pública Externa
TCP 10.0.0.1:1212 130.206.166.1:1212 65.43.23.45:25
10.0.0.1/24
10.0.0.2/24
130.206.166.9/21
10.0.0.254/24
Internet
17 Nov
Conceptos avanzados
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
Prot Interna Pública Externa
TCP 10.0.0.1:1212 130.206.166.1:1212 65.43.23.45:25
TCP 10.0.0.2:8976 130.206.166.1:8976 201.0.91.7:80
Cambia IP origen a:
130.206.166.1
10.0.0.1/24
10.0.0.2/24
130.206.166.9/21
TCP
IP origen: 10.0.0.2, puerto: 8976
IP destino: 201.0.91.7, puerto: 80
10.0.0.254/24
Internet
17 Nov
Conceptos avanzados
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
Prot Interna Pública Externa
TCP 10.0.0.1:1212 130.206.166.1:1212 65.43.23.45:25
TCP 10.0.0.2:8976 130.206.166.1:8976 201.0.91.7:80
TCP 10.0.0.1:8976 130.206.166.1:8977 201.0.91.7:80
Cambia IP:puerto origen
a: 130.206.166.1:8977
10.0.0.1/24
10.0.0.2/24
130.206.166.9/21
TCP
IP origen: 10.0.0.1, puerto: 8976
IP destino: 201.0.91.7, pu
Comentarios de: Conceptos avanzados (0)
No hay comentarios