PDF de programación - Conceptos avanzados

Imágen de pdf Conceptos avanzados

Conceptos avanzadosgráfica de visualizaciones

Publicado el 14 de Enero del 2017
617 visualizaciones desde el 14 de Enero del 2017
407,7 KB
12 paginas
Creado hace 20a (13/11/2003)
Conceptos avanzados

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

12 Nov

Conceptos avanzados

1/23

1

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...)

12 Nov

Conceptos avanzados

2/23

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)

12 Nov

Conceptos avanzados

3/23

2

Encapsulación

Información que desea enviar la aplicación

TCP o UDP

Paquete IP

Bits que circulan por el cable

12 Nov

Conceptos avanzados

4/23

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

12 Nov

Conceptos avanzados

5/23

3

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

La aplicación
sistema operativo que
entregue
UDP dirigidos
puerto

indica al
le
los datagramas
cierto

a

Según el puerto destino entrega
los datos a la aplicación

Aplicación

12 Nov

Conceptos avanzados

6/23

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)
la conexión pueden enviar
• Ambos extremos de
información al otro extremo simultáneamente (full-duplex)
• Intenta no congestionar la red

12 Nov

Conceptos avanzados

7/23

4

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

12 Nov

Conceptos avanzados

8/23

Cabecera TCP

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

indica al
La aplicación
sistema operativo que
le
entregue los segmentos TCP
dirigidos a cierto puerto

Según el puerto destino entrega
los datos a la aplicación

Aplicación

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)

12 Nov

Conceptos avanzados

9/23

5

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

Close, snd FIN

CLOSE
WAIT

rcv ACK

rcv FIN, ACK /
snd ACK

rcv ACK

FIN

WAIT-2

rcv FIN /
snd ACK

TIMEWAIT

Timeout 2xMSL

12 Nov

Conceptos avanzados

LASTACK

rcv ACK

CLOSED

10/23

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

Close, snd FIN

CLOSE
WAIT

rcv ACK

rcv FIN, ACK /
snd ACK

rcv ACK

FIN

WAIT-2

rcv FIN /
snd ACK

TIMEWAIT

Timeout 2xMSL

12 Nov

Conceptos avanzados

LASTACK

rcv ACK

CLOSED

11/23

6

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

CLOSED

ACK, ACKn=Anterior’+2

FIN WAIT-2

TIMEWAIT
CLOSED

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

Close, snd FIN

CLOSE
WAIT

rcv ACK

rcv FIN, ACK /
snd ACK

rcv ACK

FIN

WAIT-2

rcv FIN /
snd ACK

TIMEWAIT

Timeout 2xMSL

LASTACK

rcv ACK

CLOSED

12/23

12 Nov

Conceptos avanzados

NAT

• NAT=Network Address Translation
• Otra propuesta de solución al problema del agotamiento del espacio de

• Permite que una red que emplee direccionamiento privado se conecte a

direcciones

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.

12 Nov

Conceptos avanzados

13/23

7

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

12 Nov

Conceptos avanzados

Internet

14/23

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

10.0.0.254/24

12 Nov

Conceptos avanzados

IP destino:
130.206.166.1

Internet

15/23

8

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

12 Nov

Conceptos avanzados

Internet

16/23

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

12 Nov

Conceptos avanzados

Internet

17/23

9

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.
  • Links de descarga
http://lwp-l.com/pdf858

Comentarios de: Conceptos avanzados (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad