Conceptos de
Interconexión de Redes
Inter-redes
Un poco de historia
Mainframes y terminales
PCs y redes locales
Redes de área extendida (X.25, ISDN, FR…)
Problema: Cada vez más, todas diferentes e
incompatibles
Inter-redes
¿Cómo interconectarlas?
Inter-redes
Se necesita una red más abstracta, a nivel superior, que
esconda los detalles y diferencias de las diferentes redes
físicas
DARPA ya estaba trabajando en esto desde mediados de los
70!
ARPANET: Una de las primeras redes de conmutación de
paquetes
ARPANET -> Universidades -> Industria
Se incluye IP en BSD unix
Primeros ISPs
+230 Millones de máquinas conectadas (Enero 2004)
Diseño
Muchos problemas que resolver:
Tecnologías cerradas y dispares
Pérdida de información
Control de flujo y congestión
Múltiples aplicaciones, un solo canal
Diferentes requerimientos de servicio
Ley básica de ingeniería: Divide y vencerás
Dividir los problemas en grupos lógicos y jerárquicos
Esconder la complejidad, desacoplar
Facilitar la programación, prueba y mantenimiento
Conceptos previos
Servicios y redes orientados a conexión
Proveen garantías
Se pueden reservar recursos
Necesitan interacción entre los nodos
Implican un inicio y cierre de sesión
No orientados a conexión
Sin garantías pero pueden ser más eficientes
Cuando éstos se aplican a redes físicas, se suele hablar de:
Conmutación de circuitos (red telefónica)
Conmutación de paquetes (Internet)
Tipos de envío
Unicast
Uno a uno
Broadcast
Uno a todos
Multicast
Uno a varios
Anycast
Uno a alguno
Modelo de capas
Aplicación
Modelo de referencia
OSI Presentación
Sólo un modelo, no una
arquitectura de red Sesión
Cada capa provee un
servicio a la capa superior
Transporte
Cada capa dialoga con su
homóloga en el dispositivo
remoto Red
Un protocolo es la
implementación de la lógica
de una capa
Enlace
Uno o más protocolos por
capa Física
Modelo de Capas
Aplicación Aplicación
Presentación Presentación
Sesión Sesión
Transporte Transporte
Red Red
Enlace Enlace
Física Física
Modelo de Capas
Encapsulación y cabeceras
Aplicación Aplicación
Presentación Presentación
Sesión Sesión
Transporte Cabecera Datos Transporte
Red Cabecera Datos Red
Enlace Cabecera Datos Enlace
Física Datos Física
red
OSI vs. TCP/IP
Aplicación ARPANET empezó
una década antes
Aplicación que OSI
HTTP, SMTP
Presentació Telnet, POP No necesitaban
n presentación ni
sesión
Sesión
Transporte TCP/UDP Estándar ‘de
Transporte
facto’
Red
Red IP
Enlace
Enlace
Ej: Ethernet
Física Física
Capa 1: Física
Implementada en hardware
Codificación de canal
Representación de bits, voltajes, frecuencias,
sincronización
Códigos Manchester, AMI, B8ZS…
Define conectores físicos, distancias, cableado
Capa 2: Enlace
Encapsula los los paquetes en tramas para pasarlos al
medio físico
Reconstruye las tramas originales a partir de secuencias
de bits y pasa los datos a la capa de red
Provee
Direccionamiento (en el segmento de red local)
Detección de errores
Control de flujo
Capa 3: Red
Provee una red virtual global
Esconde los detalles de las redes físicas
Direccionamiento global:
Una dirección IP es suficiente para enviar hacia cualquier red en el mundo
Implica que hay que mapear las direcciones físicas con las IP
Ofrece un servicio sin garantías (mejor esfuerzo)
Si se pierden o duplican paquetes, no le importa
Deja esa función a las capas superiores
Determina si el destino es local o si lo debe enviar a un enrutador
Provee funciones de control
ICMP
Reenvía paquetes de salto en salto, de una red a la otra
El trayecto completo puede constar de muchos saltos
Capa 4: Transporte
Servicio con garantías (TCP)
Resuelve los problemas de:
Pérdida de paquetes
Duplicación
Desbordamiento (control de flujo)
Sin garantías (UDP)
Mucho más simple
A veces no hace falta fiabilidad
Provee multiplexión de aplicaciones
Concepto de ‘puertos’
Capa 5: Aplicación
La más cercana al usuario
Define las funciones de clientes y servidores
Utiliza los servicios de transporte
Ej: HTTP (web), SMTP (mail), Telnet, FTP,
DNS…
Terminología
Aplicación Nombres diferentes en
cada capa
Transporte Segmento (TCP) No se sigue muy
estrictamente. Suele
Red Datagrama (IP) hablarse
indistintamente de
‘paquete’ en todas las
Enlace
capas.
Trama, Frame
(Ethernet)
Física
Tipos de enlaces
Difusión (broadcast)
Ej: Ethernet
Punto a punto
Ej. PPP, SLIP, HDLC
NBMA (Non-broadcast Multi-
Access)
Ej: Frame Relay, ATM
Un vistazo a Ethernet
Una red de difusión (broadcast)
Topologías
Bus (cable coaxial)
Estrella con repetidor
Estrella con conmutador
¿CSMA/CD?
Razones para su éxito
Simplicidad
Costo
De 10 Mbps a 10 Gbps
Un vistazo a Ethernet
Preámbul Destin Fuent Longitu Tip Datos FCS
o o e d o (46-1500) (4)
(8 bytes) (6) (6) (2) (2)
Direcciónes MAC:
Únicas y grabadas en el hardware de la tarjeta
Por eso también se llaman “direcciones físicas”
6 bytes x 8 bits/byte = 48 bits
Suelen escribirse en hexadecimal
[Link]
Tipo: 0x800 especifica que la parte de datos contiene un
datagrama IP
El datagrama IP
Versión actual : 4
El protocolo se refiere al que está siendo encapsulado (tcp, udp…)
TTL se decrementa con cada salto
Hay fragmentación al pasar de un MTU mayor a uno menor
La dirección IP
Un número de 32 bits (4 bytes)
Decimal:
128 223 254 10
Binaria:
10000000 11011111 11111110 00001010
Hexadecimal:
80 DF FE 0A
La dirección IP
Estructura
Un sólo número, dos informaciones:
Dirección de la red (prefijo)
Dirección del nodo dentro de esa red
128 223 254 10
red nodo
¿Dónde está la división?
Al principio era implícito (clases)
Luego más flexible (máscaras)
Esquema de clases
(Classful)
Clas Format Primeros Rango Bits por
e o bits nodo
A R.N.N.N 0 [Link] - [Link] 24
B R.R.N.N 10 [Link] - [Link] 16
C R.R.R.N 110 [Link] - [Link] 8
D n/a 1110 [Link] - n/a
[Link]
E n/a 1111 [Link] - n/a
[Link]
Los límites red-nodo en la dirección son arbitrarios
¿Qué problema podemos prever?
Revisión de base binaria
En base 10 decimos:
1234 = 1x10^3 + 2x10^2 + 3x10^1 + 4x10^0 =
1000+200+30+4
De la misma forma, en base 2:
1010 = 1x2^3 + 0x2^2 + 1x2^1 + 0x10^0 = 8+0+2+0 = 10
decimal
Suma lógica (AND):
1 + 1 = 1
1 + 0 = 0
0 + 1 = 0
0 + 0 = 0
Potencias de 2 en un byte
Conviene memorizar:
2^7 = 128 1000 0000
2^6 = 64 0100 0000
2^5 = 32 0010 0000
2^4 = 16 0001 0000
2^3 = 8 0000 1000
2^2 = 4 0000 0100
2^1 = 2 0000 0010
2^0 = 1 0000 0001
Máscaras
Solución: Otro número que especifique los
límites
1000000 1101111 1111111 0000101 [Link]
0 1 0 0
AND
1111111 1111111 1111111 0000000 [Link]
1 1 1 0
=
10000000 11011111 11111110 00000000 [Link]
Con esto se podían subdividir las redes A, B y C en subredes más
pequeñas
Notación de prefijo
La máscara también se puede especificar
como la cantidad de bits a 1:
[Link] tiene 24 bits a 1
Se agrega a la dirección IP con “/”
[Link]/24
Hoy día se utilizan indistintamente las dos
notaciones
Direcciones especiales
Todos los bits de nodo a 0: Representa la red
[Link]/24
Todos los bits a 1: Broadcast local o limitado
[Link]
Todos los bits de nodo a 1: Broadcast dirigido
[Link]
Direcciones Loopback:
[Link]/8
Casi siempre se usa [Link]
Problemas con el esquema
de clases
No muy flexible
Se perdían dos subredes en cada división
En los 90’s cambió el esquema (Classless):
¡Las viejas clases A, B, C no tienen significado
ninguno en el Internet de hoy!
CIDR (Classless Interdomain Routing):
Los routers ya no consideran A,B,C como /8, /16, /24
VLSM (Variable Length Subnet Masks)
Los routers no asumen que todas las subredes son del
mismo tamaño
Subdividiendo una red
Nos debemos preguntar:
Cuántas subredes queremos
Cuántos nodos tendrá cada subred
Calculando en la cabeza
Cada bit en uno de máscara es el doble de subredes y
la mitad de nodos (o viceversa)
Cada subred se puede sub-dividir a su vez
Ejercicio:
Nos asignan [Link]/24
Tenemos:
1 edificio con 121 nodos
1 edificio con 50 nodos
2 edificios con 25 nodos
Algunos Trucos
Datagrama IP
Algunos campos interesantes
Type of Service (TOS)
retardo, fiabilidad, velocidad (voz vs.
datos)
Identification, Flags, Fragment Offset
TTL
Routers
Dispositivos con interfaces en
varias redes físicas
Una dirección IP (y subred) por
cada interfaz
Deciden el trayecto de los
paquetes basados en tablas de
encaminamiento
Envío
En IP, distinguimos entre:
Envío directo:
La máquina envía a otra que está en su
propia red física (Ej: mismo segmento
Ethernet)
Envío indirecto:
El destino del paquete IP está fuera de la
red física
Requiere la presencia de un router
Envío y Re-envío
Algoritmo de routing
Extraer la dirección IP de destino (D)
Si D encaja en alguna de las redes (Ri)
físicamente conectadas
Enviar directamente a D por la interfaz
conectada a esa red
(Implica traducir la dirección IP a la física)
Sino, si la tabla contiene una ruta
específica a D
Enviar el paquete al próximo salto
especificado en la tabla
Envío y Re-envío
Algoritmo de Routing (Cont.)
Sino, si la tabla contiene una ruta a la
red R que contiene a D
Enviar el paquete al próximo salto
especificado en la tabla
Sino, si la tabla contiene una ruta por
defecto
Enviar el paquete al router por defecto
Sino, notificar un error de routing
Routers
Mecanismo de un router:
Recibe un paquete en una interfaz
Determina si el paquete está dirigido a
él
Decrementa el TTL
Compara la dirección destino con la
tabla de encaminamiento
Envía el paquete al router del próximo
salto (o a la máquina destino)
Encaminamiento
Cada decisión es un salto en la
dirección de destino
El router no puede enviar a otro router
que no esté en una de sus propias
redes físicas
Cada router tiene sus propias tablas
Protocolos de routing: mantener
estas tablas al día
Tablas de Encaminamiento
Se compara la dirección IP destino del paquete
con las entradas en la tabla
Determinar el próximo salto
Se asume que está físicamente conectado
¿Qué es la regla del longest match?
IP Máscara Gateway
[Link] [Link] [Link]
[Link] [Link] [Link]
[Link] [Link] [Link]
Tablas de Encaminamiento
# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
[Link] [Link] [Link] U 0 0 0 eth0
[Link] [Link] [Link] U 0 0 0 lo
[Link] [Link] [Link] UG 0 0 0 eth0
Routers y Encapsulación
1. Recibe una trama de capa 2
2. Saca el paquete IP de ella
3. Revisa el contenido del paquete IP
4. Determina la interfaz siguiente
5. Encapsula el paquete dentro de una
trama del tipo correspondiente
Las redes de entrada y salida pueden ser
completamente diferentes:
Ejemplos:
De Ethernet a PPP
De Frame Relay a Ethernet
Fragmentación
Diferentes MTU en cada salto
Traducción de direcciones
Problema: Diferentes direcciones en
capas de enlace y de red
Caso Ethernet:
Tengo este paquete IP para reenviar. ¿Qué
dirección Ethernet tengo que poner en mi
nueva trama?
Tres tipos de soluciones:
Derivar una de otra con cierta operación
matemática
Incluir una dentro de la otra
Mantener una tabla dinámica
ARP
Mantiene tablas dinámicas
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>arp -a
Interface: [Link] --- 0x2
Internet Address Physical Address Type
[Link] 00-04-75-71-e5-64 dynamic
[Link] 00-04-23-62-14-4f dynamic
Las entradas tienen un tiempo de vida limitado (¿Por
qué?)
Mecanismo:
A quiere enviar a B
Primero busca la IP de B en su tabla
Si no la tiene, pregunta
A: ¿Quién tiene [Link]?
Envía una trama a toda la red:
Utiliza [Link] (todos los bits a 1)
Todos reciben la trama. Sólo el B responde
ARP
Algunas mejoras de eficiencia:
A quiere saber la MAC de B
B recibe la trama. Toma las direcciones MAC
e IP de A y las incluye en su tabla
Luego B responde a A
Como la petición es broadcast, en principio
todos los demás pueden incluir a A en su
tabla.
Pregunta: El paquete ARP viaja dentro de
una trama Ethernet o un paquete IP?
Dominios de Tráfico
Dominio de colisión
Dominio de broadcast
Diferencias
Switches vs. Hubs
Routers vs. switches
Dominios de tráfico
Router
Switch Switch
Hub Hub Hub Hub
Dominio de Dominio de
broadcast colisión
Ventajas de las subredes
Escalabilidad, eficiencia
Reducir los dominios de broadcast
Menos uso de CPU
Más espacio para tráfico legítimo -> más
velocidad
Facilitar la gestión
Ingeniería de tráfico
Implementación de políticas
Seguridad
Filtros de paquetes
UDP
User Datagram Protocol
Multiplexión de aplicaciones
Una dirección IP identifica una máquina
Los sistemas operativos son multitarea
Un puerto para cada servicio
Servicio no orientado a conexión
No ofrece ninguna garantía
Sin acuses de recibo
Sin re-transmisión
Sin control de flujo
UDP
Formato de UDP
Puerto Origen Puerto Destino
Longitud Checksum
Datos
…
TCP
Transmission Control Protocol
Orientado a conexión
Hay un acuerdo previo entre origen y destino
Hay un diálogo que va ajustando parámetros
constantemente
Servicios:
Fiabilidad
Paquetes perdidos, duplicados, desordenados
Control de flujo
Multiplexión de aplicaciones
TCP: Conceptos
PAR: Positive Acknowledgment with
Retransmission
Envío un segmento e inicio un timer
Espero una confirmación antes de enviar el
siguiente
Envío el mismo segmento de nuevo si el
tiempo expira sin recibir confirmación
¿Segmentos duplicados? ¿Cómo?
Un retraso en la red produce una
retransmisión y el mismo segmento llega
dos veces
TCP: Ventana deslizante
Esperar confirmación por cada paquete no es
muy eficiente
Tamaño de ventana = 1
Provee control de la congestión y control de
flujo (¿cuál es la diferencia?)
El tamaño de la ventana se ajusta dinámicamente
1 2 3 4 5 6 7 8 9 10 11 …
Formato de TCP
TCP: Inicio de Sesión
Three-way handshake (saludo en
tres pasos)
¿TCP o UDP?
Cuándo tiene sentido uno u otro
FTP
DNS
SNMP
Voz sobre IP (H.323, SIP)
Multicast
ICMP
Internet Control Message Protocol
Viaja sobre IP, pero no pertenece a la
capa de transporte
Funciones:
Notificar errores
Control de Flujo
Redirección
ICMP
Algunos tipos y códigos más usados
Tipo Código Descripción
0 0 Echo Reply
3 0 Destination Network unreachable
3 1 Destination Host Unreachable
3 2 Destination Protocol Unreachable
3 3 Destination Port Unreachable
8 0 Echo Request
11 0 TTL expired
ICMP: Aplicaciones
Ping
# ping [Link]
PING [Link] ([Link]) from [Link] : 56(84) bytes of
data.
64 bytes from [Link] ([Link]): icmp_seq=1 ttl=254 time=0.229
ms
64 bytes from [Link] ([Link]): icmp_seq=2 ttl=254 time=0.254
ms
64 bytes from [Link] ([Link]): icmp_seq=3 ttl=254 time=0.226
ms
64 bytes from [Link] ([Link]): icmp_seq=4 ttl=254 time=0.232
ms
64 bytes from [Link] ([Link]): icmp_seq=5 ttl=254 time=0.222
ms
ICMP: Aplicaciones
Traceroute
# traceroute [Link]
traceroute: Warning: [Link] has multiple addresses; using [Link]
traceroute to [Link] ([Link]), 30 hops max, 38 byte packets
1 [Link] ([Link]) 0.310 ms 0.236 ms 0.193 ms
2 [Link] ([Link]) 0.324 ms 0.331 ms 0.294 ms
3 [Link] ([Link]) 0.363 ms 0.296 ms 0.416 ms
4 [Link] ([Link]) 0.672 ms 1.029 ms 0.601 ms
5 [Link] ([Link]) 2.911 ms 2.994 ms 2.930 ms
6 [Link] ([Link]) 3.255 ms 2.874 ms 2.923 ms
7 [Link] ([Link]) 6.521 ms 6.153 ms 6.322 ms
8 [Link] ([Link]) 6.619 ms 6.565 ms 6.335 ms
9 [Link] ([Link]) 86.194 ms 86.239 ms 86.580 ms
10 [Link] ([Link]) 147.899 ms 147.968 ms
149.461 ms
11 [Link] ([Link]) 155.019 ms 155.738 ms
155.406 ms
12 [Link] ([Link]) 157.499 ms 155.627 ms
155.857 ms
13 [Link] ([Link]) 156.319 ms 156.168 ms 156.142 ms
Traceroute:
Funcionamiento
# traceroute [Link]
traceroute to [Link] ([Link]), 30 hops max, 38 byte packets
1 [Link] ([Link]) 0.282 ms 0.206 ms 0.186 ms
2 darkwing ([Link]) 0.266 ms 0.197 ms 0.209 ms
(simultáneamente)
# tcpdump -lnv host [Link] or icmp
tcpdump: listening on eth0
[Link].33962 > [Link].33435: udp 10 [ttl 1] (id 12001, len 38)
[Link] > [Link]: icmp: time exceeded in-transit [tos 0xc0] (ttl 255, id 64235, len
56)
[Link].33962 > [Link].33436: udp 10 [ttl 1] (id 12002, len 38)
[Link] > [Link]: icmp: time exceeded in-transit [tos 0xc0] (ttl 255, id 64236, len
56)
[Link].33962 > [Link].33437: udp 10 [ttl 1] (id 12003, len 38)
[Link] > [Link]: icmp: time exceeded in-transit [tos 0xc0] (ttl 255, id 64237, len
56)
[Link].33962 > [Link].33438: udp 10 (ttl 2, id 12004, len 38)
[Link] > [Link]: icmp: [Link] udp port 33438 unreachable (DF) (ttl 254, id
14809, len 66)
[Link].33962 > [Link].33439: udp 10 (ttl 2, id 12005, len 38)
[Link] > [Link]: icmp: [Link] udp port 33439 unreachable (DF) (ttl 254, id
14810, len 66)
[Link].33962 > [Link].33440: udp 10 (ttl 2, id 12006, len 38)
[Link] > [Link]: icmp: [Link] udp port 33440 unreachable (DF) (ttl 254, id
14811, len 66)
Telnet a puertos conocidos
# telnet [Link] 80
Trying [Link]...
Connected to [Link].
Escape character is '^]'.
GET /
<html>
<head>
<title>University of Oregon Home Page</title><link rel="SHORTCUT ICON"
href="/[Link]">
# telnet [Link] 25
Trying [Link]...
Connected to [Link].
Escape character is '^]'.
220 [Link] ESMTP Sendmail 8.12.11/8.12.11; Mon, 23 Feb 2004 [Link]
-0800 (PST)
vrfy cvicente
250 2.1.5 Carlos Vicente <cvicente@[Link]>
quit
221 2.0.0 [Link] closing connection
Connection closed by foreign host.
Ejercicios en clase
¿A qué subred pertenece [Link]/22? Cuál es la
dirección de broadcast correspondiente?
Ejercicios en Clase
Solución:
/22 significa que en el tercer octeto tenemos 6 bits de
subred
26 = 64
Si tenemos 256 posibles números para subredes, y
sólo 64 válidas
256/64 = 4
Las subredes irán de 4 en 4, no?
[Link] ([Link] – [Link])
[Link] ([Link] – [Link])
[Link] ([Link] – [Link])
Nuestra dirección cae dentro de [Link]
La dirección broadcast es la última en ese rango
[Link]
Ejercicios en Clase
¿Qué pasaría si configuramos un nodo con una máscara
incorrecta? Por ejemplo, [Link] cuando el
router y los demás en la subred tienen [Link]?
Ejercicios en Clase
Solución:
No podrá enviar al rango IP contiguo
Por ejemplo:
La red es [Link]/24
El nodo está configurado con [Link]/23
El nodo piensa que su rango local es:
[Link] – [Link]
Cuando envíe a nodos entre
[Link] – [Link]
Enviará peticiones ARP que nunca serán
respondidas
Más información
TCP/IP Illustrated. Richard Stevens. Addison-
Wesley
Internetworking with TCP/IP. Douglas Comer.
Prentice-Hall
Cisco Internetworking Basics
[Link]
TCP/IP Network Administration. Craig Hunt
O’reilly & Associates.
Requests for Comments (RFCs)
[Link]