PDF de programación - Conceptos avanzados

Imágen de pdf Conceptos avanzados

Conceptos avanzadosgráfica de visualizaciones

Publicado el 5 de Junio del 2017
647 visualizaciones desde el 5 de Junio del 2017
378,1 KB
22 paginas
Creado hace 19a (30/10/2004)
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
  • Links de descarga
http://lwp-l.com/pdf4123

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