Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Julio 2007
Índice general
1
Redes de Telecomunicación 2
3. Direccionamiento 23
3.1. Tipos de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.1. Clasificación según el ámbito o alcance . . . . . . . . . . . . . . . . . . . 23
3.1.2. Clasificación según la jerarquı́a . . . . . . . . . . . . . . . . . . . . . . . 23
3.2. Formatos de direcciones más extendidos . . . . . . . . . . . . . . . . . . . . . . 24
3.2.1. IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.2. Otros esquemas de direccionamiento . . . . . . . . . . . . . . . . . . . . 30
3.3. Algunos ejemplos de funcionamiento de IPv4 . . . . . . . . . . . . . . . . . . . . 32
3.3.1. Máquinas directamente accesibles . . . . . . . . . . . . . . . . . . . . . . 32
3.3.2. Subnetting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.3. Varios interfaces de red en una misma LAN . . . . . . . . . . . . . . . . 34
3.3.4. Ejercicio propuesto en clase . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.5. Difusión de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4. Integración de redes 38
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2. Ejemplo de integración de redes con IPv4 . . . . . . . . . . . . . . . . . . . . . . 39
4.3. Formato de los paquetes IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.1. Fragmentación de paquetes IPv4 . . . . . . . . . . . . . . . . . . . . . . 41
4.3.2. Opciones más usuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4. Tablas de encaminamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Redes de Telecomunicación 3
5. Encaminamiento 53
5.1. Tipos de direcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2. Clasificación de mecanismos de encaminamiento . . . . . . . . . . . . . . . . . . 54
5.3. Jerarquı́a de encaminamiento y direccionamiento . . . . . . . . . . . . . . . . . . 55
5.4. Establecimiento de vecindades (Neighbour creating) . . . . . . . . . . . . . . . . 57
5.4.1. Enlace punto a punto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4.2. Red de área local (LAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5. PROXY ARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.6. Cálculo de rutas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.6.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.6.2. Algoritmo del camino más corto . . . . . . . . . . . . . . . . . . . . . . . 70
5.7. Distribución de la información . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.7.1. Vector de distancias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.7.2. Estados de los enlaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.7.3. LSP en una LAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.8. Protocolos especı́ficos de encaminamiento . . . . . . . . . . . . . . . . . . . . . . 84
5.8.1. Protocolos intradominio (IGP) . . . . . . . . . . . . . . . . . . . . . . . . 87
5.8.2. Protocolos interdominio (EGP) . . . . . . . . . . . . . . . . . . . . . . . 90
5.8.3. TEMA 6: Control de congestión . . . . . . . . . . . . . . . . . . . . . . 96
5.8.4. Clasificación de los mecanismos de control de congestión . . . . . . . . . 97
6. Capa de transporte 99
6.1. Introducción a la capa de transporte . . . . . . . . . . . . . . . . . . . . . . . . 99
6.2. Jerarquı́a TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.2.1. UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.2.2. TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Redes de Telecomunicación 4
5
Redes de Telecomunicación 6
Datagrama: en este caso, el camino se busca para cada paquete individualmente. Es más lento
si existe gran cantidad de paquetes, pero permite adaptarse mejor a los cambios de la red.
Conmutación de células: los paquetes son de tamaño fijo y pequeños. Al ser de tamaño fijo,
los cálculos son más sencillos y rápidos de realizar (incluso se pueden realizar por hard-
ware), pero la probabilidad de fragmentación es más alta. Por ser de tamaño pequeño, la
cabecera ocupará proporcionalmente un tamaño mayor, lo que disminuye el rendimiento,
pero a cambio presenta la ventaja de tener un tiempo de transmisión menor. Un tiempo de
transmisión menor minimiza el problema de que llegue un paquete mientras estás trans-
mitiendo. Además, el tiempo de llenado (tiempo que se tarda en crear un paquete, por
ejemplo si estamos muestreando) es menor, lo cual es una ventaja.
Descripción interna
Funciona con conmutación de paquetes. Sus componentes serı́an sistemas finales (hosts),
conmutadores intermedios (encaminadores o routers), enlaces de comunicación (punto a punto,
red de área local) y otros dispositivos como repetidores o puentes.
Organización
Proveedores de servicios: los Internet Service Provider (ISP) son los que componen la red
dorsal. Se estructuran en 3 niveles, llamados ”tiers”. Los proveedores tier 3 son los que
dan acceso a nivel residencial o a pequeñas compañı́as. Los tier 2 proveen a los tier 3. Los
grandes proveedores, llamados tier 1 o Internet Backbone Provider (IBP), sólo dan acceso
a proveedores tier 2 o compañı́as muy grandes. Los tier 1 tienen alcance internacional y
están interconectados entre sı́ (fig. 1.4).
Descripción externa
L
ttransmisión = (1.1)
C
Propagación: el tiempo de propagación depende de la distancia que separa a los nodos emisor
y receptor (D, metros) y de la velocidad con la que se propaga la señal (V, metros por
segundo), ecuación 1.2.
D
tpropagación = (1.2)
V
En la fig. 1.5 podemos ver de forma esquemática los distintos retardos que intervienen en
una transmisión entre el equipo A y el B.
1.6.1. Introducción
Cuando los equipos telemáticos empezaron a conectarse en red hace unas décadas, cada
fabricante desarrolló su propia arquitectura, de manera que era imposible conectar en la misma
red equipos de distintos fabricantes (a menos que los fabricantes hubieran desarrollado interfaces
entre sus equipos). Como alternativa a los sistemas propietarios, la UIT-T desarrolló la norma
X.200, con el objetivo de interconectar sistemas de distintos fabricantes (interoperabilidad). Esta
norma es lo que conocemos como modelo OSI (Open System Interconnection).
Se trata de un modelo de capas en el que cada una de dichas capas:
Entidad: Cada capa se descompone en entidades. Una entidad no es más que un módulo es-
pecializado que realiza una o varias de las funciones que le corresponden a dicha capa. Si
antes decı́amos que el modelo OSI aborda el problema de la interconexión de equipos di-
vidiéndolo en varios ”problemas menores, en cada capa esos ”problemas menores”vuelven
a dividirse en problemas más pequeños aún.
PDU (Protocol Data Unit): Se denomina PDU a la unidad que intercambia información
entre entidades pares de distintos sistemas (entidades de la misma capa pero en máquinas
distintas).
Servicio: lo que ofrece cada capa a la inmediatamente superior. Para ofrecer un servicio, las
entidades de una capa colaboran con las entidades gemelas de la misma capa residentes
en otros sistemas. En general, el servicio que una capa N ofrece a la capa N+1 consiste en
transmitir datos.
Protocolo: conjunto de reglas que rige el intercambio de PDUs entre entidades pares.
SAP (Service Access Point): es la forma que tiene una capa de ofrecer un servicio. Los SAP
constituyen la ”frontera.o ”interfaz.entre dos capas.
Primitivas: Son las órdenes que se envı́an entre capas contiguas. Son necesarias para poder
acceder al servicio.
Nivel 3: Red: Ofrece comunicación extremo a extremo poniendo de acuerdo a los sistemas
intermedios.
Nivel 4: Transporte: Es muy similar al nivel de red, ya que también se ocupa de la transfe-
rencia de información extremo a extremo. La diferencia está en que la capa de transporte
lo hace independiente de cualquier nodo intermedio, mientras que la capa de red realiza su
función coordinándolos. Ofrece servicios que la capa de red no ofrece:
Fiabilidad: por si la capa de red ofrece un servicio no fiable, transporte puede emular
uno fiable si se requiere.
Orientación a conexión.
Multiplexión: el nivel de red puede ofrecer una sola comunicación de una máquina a
otra, mientras que el nivel cuatro puede añadir multiplexión para tener más canales.
Nivel 5: Sesión: Ofrece mecanismos para organizar y sincronizar diálogos entre máquinas. Per-
mite a las aplicaciones marcar el progreso del diálogo (insertando puntos de sincronismo)
y determinar qué sistema está en posesión del turno, ası́ como retomar un diálogo que se
haya interrumpido (por ejemplo, si hay algún error en la transmisión).
decir, cada encabezamiento será utilizado sólo por la capa receptora del mismo nivel; los en-
cabezamientos destinados a las capas superiores son completamente ignorados, permitiendo la
evolución independiente de cada una de las capas.
Como ilustra la fig. 1.6, cuando una capa quiere mandar información lo hace en forma
de PDUs. Para ello, la entidad correspondiente de la capa N+1 utiliza los servicios que la capa
inferior (la capa N) le ofrece a través del SAP, generando un SDU (Service Data Unit) que pasa a
dicha capa. A este N-SDU se le añade una cabecera llamada PCI (Protocol Control Information).
La PCI contiene información que solamente es útil para la capa par, de modo que cuando una
capa recibe una PDU, extrae la PCI, la interpreta y envı́a la SDU a la capa superior.
Figura 1.6: Intercambio de PDUs entre entidades pares mediante los servicios que ofrecen las
capas inferiores.
Por otro lado, si atendemos al tipo de conexión, los servicios pueden clasificarse en:
Orientados a conexión (CO, Connection Oriented): necesitan establecer una conexión entre
emisor y receptor antes de enviar los datos.
No orientados a conexión (CL, Connectionless).
El envı́o de primitivas lleva asociado, en general, la generación de PDUs, pero no tiene por
qué. Por ejemplo, la máquina B puede aprovechar un paquete que contenga una petición suya
hacia A e incluir en dicho paquete una respuesta de B a una petición anterior de A.
Redes de Telecomunicación 16
Control de flujo: Si un receptor se ve desbordado por la información que recibe (le llegan más
datos de los que es capaz de procesar), puede pedirle a un emisor que se frene.
Establecimiento de la conexión Dentro de un mismo sistema puede haber capas cuya co-
municación esté orientada a conexión y capas que no, dependiendo de lo que interese al
diseñar el sistema.
2.1. Introducción
Existen varias formas de conectar varios ordenadores:
Punto a punto: cada ordenador se conecta directamente al resto, mediante un cable fı́sico
exclusivo.
Red de área local (RAL o LAN): Hablamos de una red de área local cuando tenemos varios
equipos interconectados de modo que pueden comunicarse entre sı́ sin necesidad de pasar
por conmutadores y/o encaminadores. Cómo se observa en la fig. 2.1.
Si todos los equipos trabajan con el mismo nivel fı́sico (por ejemplo, todos se conectan
a través de interfaces Ethernet), para interconectarlos usamos un repetidor (hub).
Dicho dispositivo solo presenta funciones de la capa 1 (fı́sica).
Para conectar equipos que utilizan interfaces no compatibles se utiliza un puente (en
inglés, bridge). El puente presenta funciones de las capas 1 y 2 (fı́sica y enlace).
Red de área extensa (RAE o WAN): para interconectar varias redes de área local, se nece-
sita un encaminador o router. Este dispositivo posee funcionalidades de la capa 3 (red), lo
18
Redes de Telecomunicación 19
que significa que puede encaminar tráfico. Además de encaminar, puede controlar y filtrar
el tráfico que pase por él. Al unir varias redes LAN con encaminadores, obtenemos una red
de área extensa.
No hay que confundir el servicio ofrecido por nivel de red (orientado a conexión o no
orientado a conexión) con el funcionamiento interno de los encaminadores (circuito virtual o
datagrama). Normalmente, orientado a conexión se relaciona con circuito virtual, pero podemos
tener TCP (que es orientado a conexión) sobre datagramas.
Nota: Saber cuáles son las funciones básicas del nivel de red es concepto muy básico e
importante de cara al examen.
2.2.1. Direccionamiento
Identificación unı́voca de los nodos de la red. Las direcciones son únicas en todo el nivel de
red. Si el enlace es punto a punto no hacen falta direcciones.
2.2.2. Encaminamiento
Búsqueda de un camino para que los paquetes atraviesen la red desde el emisor hasta el
receptor. Se divide el problema en:
Cálculo de rutas: se calculan rutas con la información que posee el encaminador y la que le
envı́an los otros.
Redes de Telecomunicación 21
Nota: Saber cuáles son las partes que componen el encaminamiento es concepto muy
básico e importante de cara al examen.
Figura 2.4: Comportamiento ideal, con info. de control y real en situación de congestión.
Redes de Telecomunicación 22
Como se ilustra en la fig. 2.4, los diferentes comportamientos frente a la situación de con-
gestión son los siguientes:
En el caso ideal la información que sale es igual a la que entra. Esto ocurre hasta que llegamos
al punto de saturación del sistema, en que independientemente de la información que entre,
la salida es la misma, el máximo que permita el sistema.
En el caso real entran en acción dos efectos que no tenı́amos en cuenta anteriormente:
Por tanto, pasado un punto (punto de congestión), el sistema empieza a perder paquetes
debido a que su memoria está llena. Además, se puede llegar a un punto en que todos los recursos
del sistema se dediquen al control de congestión, y perdamos la capacidad de transmitir (punto
de bloqueo). Es necesario buscar un compromiso entre congestión y rendimiento. Lo mejor serı́a
una menor congestión a costa de un menor rendimiento.
Direccionamiento
Globales: alcanzan a toda la red (son por tanto direcciones del nivel de red).
En el nivel de enlace se usan normalmente direcciones MAC de 48 bits (IEEE 802.11). Son
direcciones únicas que los fabricantes asignan a cada tarjeta de red, aunque sólo hace falta que
sean únicas dentro de una misma LAN.
Planas: coincidencias en una parte de las direcciones no implican que los caminos a recorrer
vayan a tener una parte común. Ej. Dos tarjetas de red del mismo fabricante comparten los
24 primeros bits de su dirección MAC, y no tienen por qué instalarse en la misma subred.
23
Redes de Telecomunicación 24
3.2.1. IPv4
Introducción
Se trata de direcciones globales y jerárquicas de 32 bits (4 octetos). Tienen dos partes, red
y host (también llamadas subred y máquina, respectivamente). Todas las máquinas cuya parte
de red coincida, deben poder comunicarse directamente sin pasar por un router; dicho de otro
modo, esas máquinas podrı́an comunicarse mediante el nivel de enlace. En ese caso se dice que
esas máquinas son directamente accesibles.
Existen 3 tipos fundamentales de direcciones IPv4, que se distinguen según el valor de sus
primeros bits:
Clase A: La parte de red la foman los 8 primeros bits mientras que la parte de host son los
siguientes 24 bits. El número máximo de direcciones que podemos conseguir son 16777216.
0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
Clase B: La parte de red la foman los 16 primeros bits. El número máximo de direcciones
son 65536.
10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
Clase C: La parte de red la foman los 24 primeros bits. El número máximo de direcciones
son 256.
110XXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
Además de estas tres fundamentales, existen otras dos clases de direcciones, aunque su uso
está poco extendido:
1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
Tienen dos particularidades:
Clase E: este tipo de direcciones están reservadas para usos experimentales y posibles
usos futuros. Su formato es el siguiente:
1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
Existe una serie de direcciones IPv4, denominadas especiales, que tienen un uso especı́fico,
independientemente de lo que pudiera indicar a priori su clase:
Direcciones de uso privado - no tienen por qué ser únicas, esto es, sı́ se pueden repetir
dentro de distintas redes locales, pero están aisladas de la WAN. Son tres rangos:
• 10.0.0.0 - 10.255.255.255
• 172.16.0.0 - 172.31.255.255
• 192.168.0.0 - 192.168.255.255
Para que las máquinas que estén dentro de una red local direccionadas con una dirección
privada puedan comunicarse con otras redes remotas a través de una WAN se utiliza el protocolo
de encaminamiento NAT (Network Address Translation). Este protocolo se implementa general-
mente en los routers, y se encarga de traducir de forma transparente al usuario las direcciones
IPv4 privadas en direcciones IPv4 válidas para poder ser enviadas a través de una WAN.
Máscaras
11111111.11111111.11111111.10000000=255.255.255.128
También pueden expresarse mediante una ”notación compacta”, que consiste en poner una
barra seguida del número de unos que tiene la máscara justo tras la dirección a la que se
aplica. Por ejemplo, para aplicar la máscara anterior a la dirección 138.4.3.120 podrı́amos usar
indistintamente:
138.4.3.120/255.255.255.128 ó 138.4.3.120/25
Las mácaras pueden usarse de diversas maneras para dar mayor flexibilidad al sistema de
direccionamiento IPv4. Veremos algunas de estas formas con mayor detalle, y otras simplemente
las nombraremos.
Redes de Telecomunicación 27
El subnetting permite introducir routers dentro de una LAN y realizar subredes dentro de
una misma dirección de red tipo B (teóricamente puede usarse también en las clase A y
C, pero es muy poco habitual). Desde el exterior, es como si la LAN original no hubiera
cambiado (permite compatibilidad hacia atrás con los esquemas de direccionamiento origi-
nales de IPv4), pero desde dentro de la red es como si se hubiera dividido en varias LANs
más pequeñas, lo que permite gestionar el tráfico de red mucho mejor.
Su funcionamiento es muy simple: se trata de dividir el campo host de una dirección IP
como las que vimos en el apartado anterior en dos, asignando una de estas partes al campo
de red para formar un ”campo de red extendido”. Para ello se emplea una máscara, que
deberá tener tantos unos seguidos como el campo de red ”original”más el número de bits
que queramos ampliarlo. Es más fácil verlo gráficamente en la fig. 3.2.
La dirección de subred no se usa (no está asignada a ningún host de la red, sólo se uti-
liza para cı́rculos de direccionamiento). En cambio, la dirección de difusión de la subred
sı́; conviene resaltar que, a diferencia de la dirección de difusión general, la dirección de
difusión de subred sı́ puede emplearse para transmitir datagramas a equipos que no están
en la misma red fı́sica, pudiendo atravesar routers (siempre que están en la misma subred).
Cada subred irá desde la (dirección de subred+1) hasta la (dirección de difusión de la
subred -1), por lo que cada una tendrá:
Desde el exterior, no habrá diferencia alguna, pero internamente el router tendrá un ma-
yor control sobre el tráfico en cada subred; por ejemplo, cuando se indica la dirección de
difusión de la subred, el datagrama debe llegar a todos los nodos de la subred, pero no sale
fuera de ésta.
Supernetting
Supongamos que se desea montar una red con 900 equipos. Para poder direccionarla, una
dirección de clase C (254 hosts) serı́a insuficiente, pero usar una de clase B (65536 hosts)
implicarı́a desperdiciar miles de direcciones útiles. Esta situación se dio mucho, pues redes
de tamaño medio se veı́an obligadas a pedir una dirección de clase B a pesar de desapro-
vechar la mayor parte del espacio de direcciones, lo que llevó a un rápido agotamiento de
este tipo de direcciones.
El supernetting nació como solución a este problema: básicamente consiste en la asociación
de varias direcciones consecutivas (normalmente de clase C) para formar una especie de
”super-red”(en contraposición al término ”subred”) mayor. La forma de hacerlo es sencilla:
se toman varias direcciones consecutivas y se les asocia a todas la misma máscara. El
router sólo deberá recordar la primera dirección del grupo y la máscara (por lo que no es
compatible con el sistema ”classful”).
Veamos un ejemplo para nuestra red de 900 equipos. Necesitaremos 4 direcciones de clase
C (254 x 4 = 1016 hosts) que sean consecutivas, ya que en ese caso su campo de red
será exactamente igual salvo por los últimos bits. Supongamos que en nuestro caso el campo
de red de la primera dirección acaba con los bits 00; de esta forma, las tres direcciones
siguientes acabarán en 01, 10 y 11, pero el resto del campo de red será exactamente igual
al de la primera dirección.
Como puede verse, el supernetting tiene una restricción: las direcciones sólo pueden agru-
parse en conjuntos que sean potencias de 2 (de 2 en 2, de 4 en 4, de 8 en 8), debido a la
forma de aplicar las máscaras. Se siguen desaprovechando algunas direcciones, pero desde
Redes de Telecomunicación 30
• Agotamiento de direcciones
• Crecimiento excesivo de las tablas de enrutamiento
• Las clases de direcciones (A, B, C, etc) dejan de tener sentido. Esto permite que
cualquier red esté dentro de cualquier rango (no siendo necesario hacer subredes dentro
de una de clase B, como en el subnetting, o agrupar direcciones de clase C, como en
el supernetting).
• Las entradas en las tablas de enrutamiento de los routers deben tener, además de la
dirección, la máscara.
• Los protocolos de enrutamiento deben ser capaces de transportar las m0̆0e1scaras.
• Permite ajustar más el tamaño de las redes al necesario, desaprovechando menos
direcciones, gracias al uso de máscaras de tamaño variable.
X.121
Se usa en redes X.25. La dirección está compuesta por dı́gitos, no por octetos, hasta un
tamaño máximo de 14 dı́gitos, y consta de dos campos:
TERMINAL (10 dı́gitos) + RED (hasta 4 dı́gitos)
Los dı́gitos del campo de red tienen significado geográfico, ya que identifican al paı́s.
Redes de Telecomunicación 31
E.164
F.69
Direcciones de 128 bits (16 octetos). Cada octeto se expresa como dos cifras en hexadecimal
y cada cuatro cifras hexadecimales se separan por dos puntos (:). Ejemplo:
1234:5678:90AB:0000:FCB7:0000:0000:FFA7
Si la dirección lleva dos puntos seguidos de otros dos (::), indica que la cantidad de cifras
hexadecimales que faltan son todos ceros en esa posición (4 ceros, 8 ceros, etc). Por ejemplo:
1234:5678:90AB:0000:FCB7:0000:0000:FFA7
En este caso vemos como nos faltarı́a ocho ceros y los pondrı́amos en la posicion de los :: como
en el primer ejemplo. No podrı́amos reemplazar los primeros cuatro ceros (negrita) a la vez que
los últimos ocho poque no sabrı́amos que cantidad de ceros irı́an en cada posición.
Además se pueden indicar los últimos cuatro octetos en formato IPv4. Por ejemplo:
::193.147.162.5 = 0000:0000:0000:0000:0000:0000:193.147.162.5
IP. Para que A pueda saber si B está o no accesible debe realizar lo siguiente:
Si ambos resultados son iguales indica que el nodo es directamente accesible, y las tramas
del nivel de enlace que transmite el equipo A serán de la forma que indica la figura 3.5:
Si ambos resultados no son idénticos, el será el encaminador el que tenga que encargarse
de hacer llegar los datos a B, y los datagramas que salen de A quedarı́an como la figura
3.6:
Para poder realizar comunicaciones a través del nivel de enlace, se utiliza el protocolo ARP
(Address Resolution Protocol). Es un protocolo de nivel de red responsable de encontrar la
Redes de Telecomunicación 33
dirección hardware (Ethernet MAC) que corresponde a una determinada dirección IP. Para ello
se envı́a un paquete (ARP request) a la dirección de multidifusión de la red (broadcast (MAC
= ff ff ff ff ff ff)) conteniendo la dirección IP por la que se pregunta, y se espera a que esa
máquina (u otra) responda (ARP reply) con la dirección Ethernet que le corresponde. Cada
máquina mantiene una caché con las direcciones traducidas para reducir el retardo y la carga.
ARP permite a la dirección de Internet ser independiente de la dirección Ethernet, pero esto
solo funciona si todas las máquinas lo soportan.
3.3.2. Subnetting
Supongamos el rango de direcciones definido por: 193.147.160.0/21. El número total de
direcciones que tendremos disponible, teniendo en cuenta que hay que reservar dos para dirección
de red y la de difusión será de:
En realidad a todas las subredes habrı́a que quitarle un usuario más, ya que una de estas
direcciones la tenemos que asignar a la interfaz del router con la que está conectada la subred.
Normalmente se toma la primera dirección del rango de la subred. Visto desde fuera de la red,
todas las subredes comparten los 21 primeros bits de la dirección IP.
En teorı́a, podrı́amos pensar que, estando en la misma red local, todos los equipos deberı́an
poder comunicarse directamente a través del nivel de enlace (estar ”directamente accesibles”).
Aunque esto deberı́a ser ası́, lo cierto es que el uso de máscaras puede hacer que no siempre sea
posible.
En nuestro ejemplo, si A quiere enviar un datagrama a B o C, lo primero que harı́a serı́a
comprobar sus direcciones con su máscara, con lo que obtendrı́a:
Si A quiere mandar algo a B o C debe enviarlo al router, ya que interpreta que no están
accesibles. Si B quiere enviar algo a C lo puede hacer directamente sin pasar por el encaminador.
Por tanto, el router deberá tener dos interfaces de red, que serı́an 150.214.4.1 (para la subred
donde se encuentra A) y 150.214.4.9 (para la subred donde se encuentran B y C).
El caso del paquete dirigido a 173.15.23.255 es diferente. El router, al ver que la dirección
Redes de Telecomunicación 37
de difusión no es la de la subred por la que le llega el paquete, decide reenviarlo. Tras viajar
por la red, llegará a la subred deseada. El mensaje serı́a recibido por todos los componentes de
dicha subred.
Capı́tulo 4
Integración de redes
4.1. Introducción
Cuando se diseña una red de datos se desea sacar el máximo rendimiento de sus capacidades.
Para conseguir esto, la red debe estar preparada para efectuar conexiones a través de otras redes,
sin importar qué caracterı́sticas posean.
El objetivo de la Interconexión de Redes (internetworking) es dar un servicio de comunica-
ción de datos que involucre diversas redes con diferentes tecnologı́as de forma transparente para
el usuario. Este concepto hace que las cuestiones técnicas particulares de cada red puedan ser
ignoradas al diseñar las aplicaciones que utilizarán los usuarios de los servicios.
Algunas de las ventajas que plantea la interconexión de redes de datos, son:
Los dispositivos de interconexión de redes sirven para superar las limitaciones fı́sicas de los
elementos básicos de una red, extendiendo las topologı́as de esta.
Como vimos en temas anteriores, el nivel de red es el más apropiado para integrar distintas
redes. En este tema vamos a ver de qué forma podemos conectar redes heterogéneas, centrándonos
fundamentalmente en las redes TCP-IP.
38
Redes de Telecomunicación 39
Figura 4.1: Ejemplo de interconexión de una red heterogénea. Nota: CNLP (Connection Less
Net Protocol)
Desde el punto de vista de los equipos que se comunican, lo más sencillo serı́a usar un
solo protocolo común, sin que tuvieran que ”lidiarçon los distintos tipos de redes que hay entre
ambos; y justamente eso es lo que se hace al usar IP: cada máquina debe preocuparse únicamente
de generar un paquete IP indicando, principalmente, su propia dirección IP y la dirección IP de
destino, y será el protocolo el que se preocupe de llevar los datos desde el origen al destino a
través de cualesquiera redes fı́sicas que haya entre ambos.
Para que podamos usar IP sobre cualquier tipo de red se necesita un método de resolución
de direcciones. En nuestro ejemplo, necesitarı́amos un método mediante el cual el ordenador A
fuera capaz de obtener la dirección X.25 del router R1 a partir de su IP; una vez en R1, que
encontrara la dirección ethernet del router R2; y finalmente, una vez en R2, que encontrara
la dirección CLNP del equipo B. Para ello se usa ARP, que funciona de la siguiente manera:
Cuando un ordenador quiere enviar un paquete a una dirección IP de un router u otro PC de su
misma red, primero envı́a un mensaje ARP (que es de difusión) preguntando a qué dirección de
nivel de enlace pertenece esa IP (dirección de nivel de red). El router correspondiente respon-
derá indicando su MAC (su dirección de nivel de enlace). Algunos sistemas permiten el proceso
inverso, obtener una IP a partir de una MAC.
Redes de Telecomunicación 40
Las 5 primeras filas (primeros 20 octetos) son lo que se denomina la ’parte fija de la cabecera,
y siempre irán en cada datagrama, de modo que el tamaño mı́nimo de cada datagrama IP es de
20 octetos. A continuación vendrı́a un campo opcional de tamaño variable, y finalmente, si los
hubiera, los datos (también de tamaño variable). Veamos una descripción detalla de cada uno
de los campos:
ToS=Type of Service (8 bits): inicialmente era un campo opcional que los routers
antiguos ignoraban, pero hoy en dı́a se utiliza para la tecnologı́a QoS (Quality of Service,
calidad de servicio). En concreto se utiliza en los Servicios Diferenciales. En estos, el TOS
identifica el tipo de tráfico que lleva cada paquete (Tranferencia de ficheros, voz sobre
IP, etc.). Ası́, cada router tratará cada paquete de acuerdo al contenido. Por ejemplo, los
Redes de Telecomunicación 41
paquetes de VoIP (Voz sobre IP) requieren poco retardo pero importa poco que se pierdan
algunos. De esta forma, los routers darán prioridad a los paquetes VoIP pero los desecharán
si tienen que hacerlos esperar demasiado.
Longitud total del paquete (16 bits): indica, en número de octetos, el tamaño total del
datagrama IP, incluyendo cabecera y datos. Sirve para que el nivel IP del destino sea capaz
de descartar el relleno añadido por niveles inferiores. La longitud máxima del paquete es
de:
216 − 1 = 65535 octetos. (4.1)
Identificador (16 bits), Flags (3bits) y Desplazamiento y Offset (13 bits): estos
3 campos se utilizan para controlar la fragmentación de los paquetes, y se describen con
detenimiento en el apartado de Fragmentación de paquetes IPv4.
Protocolo (8bits): contiene un identificador del protocolo al que pertenece la PDU que
va en el campo de datos, como por ejemplo TCP.
El router A divide los 3980 Bytes de datos en 3 fragmentos, cada uno con un tamaño
máximo de 1480 Bytes. De esta forma obtenemos 2 paquetes de 20+1480=1500 Bytes y uno de
20+1020=1040 Bytes. Nótense varias cosas:
La cabecera del paquete original (el de 4000 Bytes) no se incluye en los fragmentos.
Los paquetes finales no deben superar el tamaño máximo incluyendo las nuevas cabeceras.
Por eso hemos dividido los datos en paquetes de 1480 Bytes como máximo, para que al
añadir la cabecera IP no superemos los 1500 Bytes.
Si sumamos, todos los Bytes finales, incluidas las cabeceras, vemos que el tamaño total se
ve incrementado, ya que cada nuevo fragmento añade una nueva cabecera.
Para ilustrar esto con más detalle vamos a suponer que A envı́a el primer paquete por el
router de arriba, sin problemas de fragmentación, mientras que los paquetes 2 y 3 van a ser
enviados por B, donde vuelve a surgir la necesidad de fragmentación, como se aprecia en la
figura 4.5.
Paquete 1
Cabecera 20 octetos
Datos 3980 octetos
Offset 0
MF 0 (por ser el único paquete existente)
Source Routing: sirve para especificar las IPs de los routers por los que debe ir pasando el
paquete. Dicho de otro modo, el origen especifica de forma explı́cita la ruta que deberán
seguir los datagramas hasta el destino.
La del propio router. Pasa el paquete al nivel superior para analizarlo. No lo reenvı́a.
Cualquier dirección distinta a las anteriores. En ese caso, el paquete será enrutado, en
función de la IP de destino, siguiendo las tablas de encaminamiento.
Una tabla de encaminamiento consta de varias entradas (filas), cada una de las cuales consta
de 5 campos (columnas). Los campos son los siguientes:
Dirección de Red (enadelante DirRed): es una dirección IP que engloba toda una red.
Suele acabar en cero.
Máscara de Red (en adelante Mask): define, aplicada al campo anterior, la extensión de
la red (véase el apartado 2.1.3 del tema anterior para una descripción más detallada).
Métrica: es el número de routers por los que debe pasar un paquete antes de alcanzar el
siguiente salto.
Redes de Telecomunicación 47
IP del siguiente salto (en adelante IPnext): es la IP del siguiente router al que se debe
enviar el paquete para que llegue a su destino. También llamada Next Hop.
Interfaz: indica la interfaz (tarjeta de red) por la que se debe enviar ese paquete.
A la hora de ordenar la tabla hemos supuesto que la máscara de la red del router A tiene
una longitud mayor que la de Z, a su vez mayor que la de X y esta que la de Y:
26 > Long(M askZ) > Long(M askX) > Long(M askY ) (4.2)
Aquı́ se observa el detalle de que hemos agrupado las 4 LANs que empiezan por 193.0.0.*
en una sola, haciendo la máscara lo suficientemente grande. Esto es posible gracias a que todos
los paquetes que son enviados al cualquiera de esas LANs es enviado al router A.
Por supuesto que la suposición de los tamaños de las máscaras de redes anterior quedarı́a
ahora ası́:
24 > Long(M askZ) > Long(M askX) > Long(M askY ) (4.3)
Los puntos suspensivos de la última fila representan las restantes entradas, correspondientes
a las restantes redes también conectadas a C.
Puntos importantes a tener en cuenta son los siguientes:
Las entradas deben estar ordenadas de mayor a menor longitud de máscara para optimizar
el funcionamiento del router.
Para el router B los cambios son mucho más traumáticos. En principio ya no se podrı́an
agrupar las LANs 193.0.0.* sino que habrı́a que subdividirlas de la forma que se indica en la
tabla 4.4.
Donde hemos agrupado las redes 193.0.0.0/26 y 193.0.0.64/26 en 193.0.0.0/25. Sin embargo
la red 193.0.0.128/26 debe ir separada.
Hay un truco para evitarnos esto y consiste en aprovechar que las entradas se comprueban
en orden. Si la entrada correspondiente a la red 193.0.0.192/26 estuviese justo encima de la
correspondiente a 193.0.0.0/24 todo funcionará correctamente. Ası́ todos los paquetes con destino
a 193.0.0.192/26 coincidirı́an con la primera entrada mientras que los que no serı́an procesados
normalmente justo como estaba antes. Se ilustra en la tabla 4.4.
La tabla de C no se verı́a afectada por este cambio de topologı́a dado que todos los paquetes
destinados a 193.0.0.0/24 siguen siendo enviados a IP.B.2.
Redes de Telecomunicación 51
Encaminamiento
53
Redes de Telecomunicación 54
Encaminamiento salto a salto: En cada salto se decide dónde reenviar el paquete. Este
último mecanismo es el que utiliza en el funcionamiento normal de la red.
aleatoria. Los paquetes se pondrı́an a dar vueltas por la red y en algún momento
llegarán a su destino) y reenvı́o por la interfaz menos cargada.
• Centralizado: El cálculo de rutas sólo lo hace el nodo central. Los nodos recogen
la información de sus vecinos y la envı́an al nodo central. Estas rutas son muy con-
sistentes dado que el nodo central conoce perfectamente la estructura completa de la
red y no se producirán bucles, pero el nodo central se convierte en un punto crı́tico
(cuello de botella).
• Distribuido: Son los más utilizados. En este tipo de encaminamiento todos los nodos
son iguales, todos envı́an y reciben información de control y todos calculan, a partir
de su BIE, sus tablas de encaminamiento. La adaptación a cambios es óptima siempre
y cuando éstos sean notificados.
La forma de encaminamiento la elegimos nosotros. En este caso la tabla del nodo 1 quedarı́a
de la siguiente forma:
Si jerarquizamos el sistema nombrando los nodos como en la ilustración 6.3, la tabla dismi-
nuye considerablemente de tamaño pero a costa de perder precisión.
Vemos como la nueva tabla tiene aproximadamente la mitad de tamaño que la anterior,
pero el precio que hemos de pagar por ello es que para alcanzar algunos nodos será necesario
realizar más saltos. Por ejemplo, para llegar al nodo 3, el camino antes era 1 → 7 → 6 → 8 → 3,
mientras que ahora se convierte en 1 → 2 → 10 → 5 → 9 → 3, es decir, damos un salto más.
Aún se podrı́a introducir un nivel más de jerarquı́a:
La tabla de encaminamiento quedarı́a ası́:
Redes de Telecomunicación 57
Permitir a los sistemas finales (SF = host = nodo) encontrar los SI adyacentes, distinguir
cuáles son los nodos adyacentes y encontrar la dirección del nivel de enlace de los nodos
adyacentes.
Este establecimiento lo veremos en dos escenarios distintos; en un enlace punto a punto y en una
red de área local (LAN).
Solución ISO: Dispone de un protocolo denominado ESH (end system hello). Periódica-
mente, el SF envı́a por el enlace un mensaje hello con el cual el SF indica al SI su dirección
de nivel 3.
Solución TCP/IP : No se envı́an mensajes, sino que se utiliza la configuración de los nodos.
Se resuelve a partir de la dirección y de la máscara. En el enlace punto a punto bastarı́a
con una máscara de 30 bits, que nos proporciona un sistema con 4 direcciones: una para
dirección de red, otra para difusión, otra para el SI y otra para el SF.
Cuadro 5.3: Tabla de rutas para la red con varios niveles de jerarquı́a
Solución ISO
ESH (Hola del SF): Los sistemas finales envı́an este mensaje a una dirección destino de
grupo que la escuchan todos los SI.
ISH (Hola del SI): El SI envı́a este mensaje por todas sus interfaces a todos los sistemas
finales con los que esté conectados directamente.
Redirección: Es un mensaje en el cual el SI especifica al SF por dónde debe enviar los men-
sajes a un destino determinado. Por ejemplo cuando un SI recibe un paquete y lo reenvı́a
por la misma interfaz que la recibió, envı́a un mensaje al que lo envió para informarle de
que ese destinatario está visible directamente. Lo vemos en estas ilustraciones.
Figura 5.7: SFA le quiere enviar un mensaje a SFB . B se encuentra directamente accesible por
el nivel de enlace, pero A no lo sabe. A envı́a el mensaje destinado a B al SI.
Veamos el comportamiento de los SF ante los problemas que nos quedan (los problemas 4, 5 y
6). Para ello estudiamos el algoritmo de los SF:
SI13 SI12
SI23 SI22
Caché Destino (CD): Esta tabla contiene una relación entre la dirección de nivel 3 destino
y la dirección nivel 2 que debemos poner en el mensaje para que alcance dicho destino.
Almacena tanto mensajes de redirección como ESH.
3. Si la CSI está vacı́a, envı́a un mensaje de difusión dentro de su LAN, ya que es el alcance
que tienen las direcciones de nivel de enlace (D3, ∨SF 2 )
1. Si el SFA quiere enviar algo a SFD y SFA sólo sabe SFD3 , aplica el algoritmo de los SF.
Como las cachés se encuentran vacı́as se envı́a un mensaje de difusión dentro de su LAN,
rellenando la tabla de CSI de SFA con las direcciones de nivel de enlace SIA2 y SIB2 . El
mensaje sale a través de alguno de estos sistemas intermedios.
Redes de Telecomunicación 63
Figura 5.9: SFA quiere enviar algo a SFC . A no sabe donde está C, ası́ que envı́a el paquete a
un SI aleatoriamente. En este caso, lo envı́a al SIA .
2. Si SFA desea enviar algo a SFC , el mensaje tendrá como dirección de red la dirección
destino de SFC y como dirección de enlace la dirección de nivel 2 de SIA o de SIB .
Si ha sido enviado a través del SIA ,SIA lo reenvı́a a SIB por la misma interfaz y avisarı́a
a SFA , mediante un mensaje de redirección, de que el destino está alcanzable a través de
SIB (se vio en uno de los ejemplos de redirección). Esta información la almacenarı́a SFA
en su caché de destinos (CD) de la siguiente forma:
SFC3 SIB2
3. Si SFA desea enviar algo a SFB en principio lo harı́a a través de SIA . Como este sistema
intermedio tiene que reenviar el mensaje por la misma interfaz por la que lo recibió, enviarı́a
un mensaje de redirección a SFA para comunicarle que SFB está accesible directamente
(se vio en uno de los ejemplos de redirección). Esta información la almacena SFA en su
caché de destino por lo que la CD de SFA quedarı́a ası́:
SFC3 SIB2
SFB3 SFB2
Redes de Telecomunicación 64
Figura 5.10: El SIA consulta su tabla de encaminamiento y ve que para enviar un paquete a
C ha de pasar por SIB . Por tanto, reenvı́a el paquete a SIB . Pero SIA se da cuenta de que al
reenviar el paquete ha usado el mismo interfaz por el que lo recibió, ası́ que comunica a SF A
que, cuando tenga que enviar un paquete a SFC , lo tiene que mandar a la dirección de enlace
de SIB .
4. Si caen los SI, desués de un cierto tiempo se borrarı́a la caché de CSI y CD. Si ahora SFA
quiere enviarle algo a SFB y suponiendo que los SI están caı́dos y las tablas borradas, SFA
enviarı́a un mensaje de difusión tal que ası́:
El SFB contestarı́a a SFA con un mensaje ESH directo indicándole en este su dirección
de nivel de enlace. SFA lo almacena en su caché de destinos y ya podrı́an compartir
información.
Solución TCP/IP
En esta arquitectura cada host conoce su IP, su máscara y la IP del router por defecto.
Para traducir las direcciones IP en direcciones de nivel de enlace (dirección MAC), TCP/IP
cuenta con el protocolo ARP (Address Resolution Protocol, RFC 826). Si un sistema quiere
encontrar la dirección de nivel de red que pertenece a una determinada IP, este envı́a un paquete
(ARP REQUEST) a la dirección de difusión de la red en el que se indica la IP por la que se
Redes de Telecomunicación 65
pregunta. La máquina implicada, si existe, responde con otro mensaje (ARP RESPONSE) donde
le indica su dirección MAC.
El protocolo ICMP (Internet Control Message Protocol, RFC 792) permite enviar mensaje
de redirección. En este protocolo se encapsulan en el mismo mensaje dos direcciones IP, es decir,
dos direcciones de nivel de red, no una de red y otra de enlace como en casos anteriores. Esta
diferencia con respecto a los mensajes de reencaminamiento de ISO se explicará detenidamente
más adelante con un ejemplo.
Veamos como soluciona TCP/IP los mismos problemas anteriores:
2. SI : SFA2 SFB2 . El SI debe saber cuál es la dirección de nivel 2 de los sistemas finales A y
B.
2
3. SF : SIX . Cualquier sistema final debe conocer la dirección de nivel 2 del sistema inter-
medio al que está conectado.
4. SFA → SFB , SFA : SF 2 B . A quiere enviar algo a B. Como están unidos fı́sicamente en
una LAN no hace falta que pase por ningún SI, pero A necesita conocer la dirección de
nivel de enlace de B. Si por desconocimiento o error A enviara el mensaje a un SI, debe
Redes de Telecomunicación 66
existir alguna forma para que el SI le comunique a A que B está accesible a través del nivel
de enlace.
6. Suponemos que no hay SI. SFA → SFB , SFA : SFB2 . Si no hay SI y A quiere enviar un
mensaje a B, A necesita conocer la dirección de nivel de enlace de B.
El problema 1 se puede solucionar con el uso de la máscara. Dado que cada enlace del SI
tendrá asignadas una IP y una máscara, yo se todas las direcciones posibles de nivel de red de
cada enlace. Los problemas 2, 4 y 6 se pueden resolver haciendo uso del protocolo ARP.
Ejemplo: Si A y B son dos sistemas finales dentro de una misma LAN y A quiere conocer
la dirección de nivel de enlace de B, A enviarı́a un mensaje de difusión ARP REQUEST con la
dirección IP de B. B contestarı́a con un mensaje directo ARP RESPONSE en el que le indica
a A su dirección de nivel de enlace. En la caché de A se almacenarı́a la IP y la MAC de B,
mientras que en la caché de B se guarda la IP y la MAC de A.
En el problema 3, el sistema final quiere conocer la dirección de nivel de enlace del router.
Por configuración los hosts saben su IP, su máscara y la dirección IP del router por defecto.
Usando ARP conseguirá la direccion de nivel de enlace del router. Para ello la dirección IP debe
ser accesible directamente (al multiplicar bit a bit la máscara con la IP propia y del router debe
salir el mismo resultado).
En el problema 5 se trata de averiguar qué router es mejor para llegar a un determinado
destino. Si nos acordamos del ejemplo en que SFA quiere enviar algo a SFC , el SIA debe enviar
un mensaje de redirección a SFA para que lo que envı́e a SFC lo haga a través de SIB . En
TCP/IP contamos con ICMP para enviar los mensajes de redirección. En este caso, el mensaje
de redirección que SIA envı́a a SF A contiene una pareja de IPs (IPSFC , IPSIB ), es decir, dos
direcciones de nivel de red en vez de una dirección de nivel de red y una de nivel de enlace como
hacı́a la norma ISO. El SFA es el que se encarga de traducir la dirección IP del SIB (SI 3 B ) a la
dirección de nivel de enlace del SIB .
Otros protocolos relacionados con ARP son:
RARP (ARP reverse RFC 903): Sirve para averiguar una dirección IP a partir de una
dirección de enlace. Se usa en maquinas que no tienen unidad de almacenamiento (tienen
MAC pero no tienen IP).
BOOTP (RFC 951): Al arrancar enviamos por difusión nuestra dirección MAC, consi-
guiendo de un servidor BOOTP la IP. También permite conocer la dirección de un servidor
Redes de Telecomunicación 67
de ficheros y una lista de ficheros a descargar (útil si se quiere que al arrancar la máquina
se instale un sistema operativo desde un servidor de ficheros, por ejemplo).
DHCP (RFC 2131): Es una evolución del BOOTP, que además de lo que éste proporcio-
naba da más información (como la dirección del servidor DNS, la del router por defecto...).
Se puede usar cuando tenemos más máquinas que IPs disponibles, ya que las IPs se asig-
nan dinámicamente cuando la máquina lo requiere. Dichas IPs pueden tener un tiempo de
asignación limitado, de modo que pasado ese tiempo caducan y es necesario solicitar otra
dirección.
InARP (RFC 2390): Inverse ARP. Cuando se tiene una conexión punto a punto te permite
averiguar la IP del otro extremo.
Supongamos que el equipo C quiere enviar al equipo A un paquete y que ambos están
separados por un router con Proxy ARP (en este caso, el router R está haciendo Proxy ARP de
A y B por R1 ). Lo primero que hará C será enviar un paquete ARP a su red local preguntando
por la MAC del equipo A. Este paquete no llega a A, sino que es el router quien responde con
su MAC haciéndose pasar por A. Cuando C envı́a el paquete, lo envı́a con la MAC del router y
Redes de Telecomunicación 68
R1=172.16.0.1/24
R2=172.16.1.121/16, hace Proxy ARP de A y B
B=172.16.1.120/16. Su router por defecto es Gateway.
A=172.16.0.2/24. Su router por defecto es R.
5.6.1. Introducción
El cálculo de rutas se define como el cálculo del mejor camino suponiendo que ya tenemos
información de la red. El primer objetivo de este mecanismo es obtener una función a optimizar:
función de optimización. A los parámetros de esta función se les denominan métricas.
El método consistirá en máximizar o minimizar esas métricas según convenga (por ejemplo,
si la variable que estamos manejando es el retardo, convendrá minimizarla. Si se trata de los
beneficios obtenidos, interesará maximizarla).
Redes de Telecomunicación 70
• Saturación máxima: se mide en cada nodo. Para nuestra ruta habrı́a que ver en
qué nodo se da la saturación máxima.
• Retardo global medio: Se trata del retardo de cada enlace ponderado por el número
de paquetes que lo atraviesa.
LOCALES: A cada enlace se le asigna un valor. Ahora a cada camino (sucesión de enlaces)
se le asigna otro valor en función del valor añadido de los enlaces. La función óptima
será los caminos que maximicen o minimicen el valor anterior. Dentro de las métricas
locales, podemos clasificarlas en:
• ADITIVAS: Su función óptima depende de la suma del valor asociado a cada enlace
en el camino. P.ej. Número de saltos, retardo medio en el camino.
• CÓNCAVAS: Su función óptima depende del mı́nimo del valor asociado a cada enlace
en el camino. P.ej. Capacidad del enlace, MTU (Unidad Máxima de Transmisión, nos
da información acerca del tamaño máximo de la SDU (Unidad de Datos del Servicio)).
• MULTIPLICATIVAS: Su función óptima depende del producto del valor asociado a
cada enlace en el camino. P.ej. Probabilidad de error.
Algoritmo de Bellman-Ford
Obtiene la distancia mı́nima de todos los nodos a un nodo destino (al que denominamos
nodo 1). Usaremos la siguiente notación:
Din = Distancia mı́nima del nodo i al nodo 1 a través de caminos de n saltos o menos.
Definimos:
Din = 0∀n
Di0 = ∞∀i 6= 1
Din+1 = mı́nj∈N (i) [dij + Djn ], donde dij =coste, longitud o peso del enlace entre i y j (si no
hay, se considera infinito) y N(i) es el conjunto de nodos adyacentes a i.
Cuando se alcanza Din+1 = Din ∀i , se dice que se ha encontrado el camino más corto.
Esta representación gráfica equivale a la siguiente tabla de costes:
Redes de Telecomunicación 72
dij 1 2 3 4 5
1 0 ∞ ∞ ∞ ∞
2 1 0 2 ∞ ∞
3 ∞ 8 ∞ 0 4
4 ∞ 8 ∞ 0 4
5 ∞ ∞ 2 2 0
Calculamos las distancias mı́nimas al nodo 1, considerando que el número máximo de saltos
que se pueden dar es 1:
D31 = 4
D41 = ∞
D51 = ∞
Ahora repetimos los cálculos, considerando que el máximo número de saltos es 2, después 3...
ası́ hasta que en una de las iteraciones los resultados no cambien respecto a la iteración anterior
(por ejemplo, en nuestro caso la distancia permitiendo 5 saltos es igual que si permitimos 4). Si
realizamos todas las combinaciones posibles resulta la siguiente tabla:
Redes de Telecomunicación 73
Din D1 D2 D3 D4 D5
0 0 ∞ ∞ ∞ ∞
1 0 1 4 ∞ ∞
2 0 1 2 9 6
3 0 1 2 9 4
4 0 1 2 8 4
5 0 1 2 8 4
Existe una variante, el algoritmo de Bellman-Ford distribuido ası́ncrono, que comienza con:
D1 = 0
Di = ∞∀i 6= j
Cada nodo envı́a a sus vecinos los Di obtenidos y recibe de sus vecinos los Dj obtenidos por
ellos mediante la ecuación de Bellman-Ford (Di = min(dij + Dj )). Entonces, el nodo i calcula
Di = minj∈N (i) (dij + Dj ), donde N(i) representa los nodos adyacentes a i. Es decir, cada nodo
calcula la distancia mı́nima a los nodos de la red a partir de la información que recibe de sus
vecinos. El proceso se repite de forma iterativa, y al final converge en el camino más corto,
donde se tendrá la distancia mı́nima. Este algoritmo presenta la ventaja de que sólo es necesario
conocer de antemano a los nodos vecinos al nuestro, no a toda la red como ocurrı́a con el
algoritmo Bellman-Ford. Sin embargo, es un algoritmo en el que la convergencia se produce de
forma muy lenta.
Algoritmo de Dijkstra
Obtiene la distancia mı́nima de todos los nodos con el nodo 1. La notación que se usa es:
Di = Estimación de la distancia mı́nima al nodo 1. A esto lo llamaremos etiqueta.
P = Conjunto de nodos cuya etiqueta no es una estimación de la distancia, sino que es la
distancia real. En cada iteración del algoritmo conseguiremos que más estimaciones se vayan
haciendo permanentes, por lo que P se irá incrementando hasta contener a todos los nodos de
la red.
Las suposiciones iniciales del algoritmo son:
D1 = 0. Es una etiqueta permanente (ya que sabemos con seguridad que la distancia del
nodo 1 al nodo 1 es siempre 0)
Redes de Telecomunicación 74
P = 1. Es el conjunto de distancias que sabemos con seguridad que son ciertas. Nótese co-
mo, inicialmente, sabemos que la distancia del nodo 1 al nodo 1 es cero, pero no conocemos
ninguna otra distancia.
Dj = dij ∀j 6= i. Esto es, inicialmente se considera que la distancia del nodo 1 al nodo j es
el coste del enlace que los une, si existiera. Si no existe, vale infinito.
1. Encontrar i ∈/ P : Di = mini∈P/ Dj , es decir, de todos los nodos buscamos aquel que tenga
la etiqueta tentativa mı́nima (lo llamaremos nodo i) y lo añadimos al conjunto P. Una vez
que lo añadimos al conjunto P, su etiqueta se vuelve permanente (no cambia).
5. Volver a 1.
Cada nodo comienza con un vector VDi=(∞, ∞, ∞, ...∞,0 (en la posición i),∞,...,∞) se
denomina vector distancia del nodo i. Este vector tendrá en cuenta todos los nodos de la
red.
Cada nodo calcula V Di minimizando dij + Dj para cada elemento del vector, y teniendo
en cuenta todos los enlaces que posee. ·
Redes de Telecomunicación 76
Se recalcula V Di si:
Presenta una ventaja, la comunicación se da entre nodos adyacentes por lo que sólo es
necesario emplear el nivel de enlace. Se envı́a mucha información, pero a pocos equipos. El
problema que presenta, dado que se basa en el algoritmo Bellman-Ford distribuido ası́ncrono, es
que la convergencia puede ser lenta. Veámoslo con un ejemplo:
En esta situación los vectores de distancias convergen a esta situación:
A B C
Dist. a A 0 1 2
Dist. a B 1 0 1
Dist. a C 2 1 0
Redes de Telecomunicación 77
Los vectores que cada nodo tiene almacenados por cada interfaz serı́an:
A BA BC C
1 0 2 1
0 1 1 0
1 2 0 1
Cada nodo construye LSP (Link State Packet, paquete de estado de los enlaces) que con-
tiene la lista de coste e identificador de los vecinos. LSP={<id, coste>, <id, coste>, ...}
Cada SI crearı́a un mapa completo y harı́a el cálculo de rutas (p.e. con Dijkstra)
periódicamente.
Los inconvenientes de este método son los siguientes: si no conseguimos que los paquetes LSP
les lleguen a todos los nodos de la red se pueden producir bucles. También puede que se gasten
muchos recursos con el envı́o de LSP.
Para que los LSP lleguen a todos los nodos no podemos basarnos en encaminamiento porque
todavı́a no lo tenemos (recordemos que la fase en la que estamos actualmente, la distribución de
información, es previa al encaminamiento). Se usa el método de inundación que puede hacer
que se llene la red de LSP. El mecanismo para controlar la cantidad de LSP es que el nodo se
quede con los más recientes o usar numeración. La solución pasa por un esquema que mezcla la
numeración y el tiempo. Como método básico se usa la numeración. A cada paquete se le asocia
un número de secuencia y además se le indicará la edad (contador que se va decrementando
con el tiempo y en cada salto) como mecanismo de autodestrucción, esto es, cuando se alcance
edad=0 se rechaza el paquete. El LSP contendrá por tanto: origen, SN (número de secuencia),
edad y datos. No lleva destino porque está dirigido a todos los routers de la red.
Redes de Telecomunicación 79
Si el LSP que le llega a un nodo tiene un número de secuencia mayor que el almacenado,
guardamos la información y lo reemitimos decrementando la edad. Cuando se almacena también
va decrementando su edad con el transcurso del tiempo y normalmente no llegará a cero. Si llega
un LSP con el SN menor del que tenemos almacenado se descarta.
El problema que se plantea ahora es la sincronización del reloj con los demás.
LSP/enlace 1 2 3
[h] origen=R5 envı́o LSP 1 1 0
SN=17 envı́o ACK 0 0 1
ALGORITMO:
1. Al inicio la tabla está vacı́a. Supondremos que los mensajes recibidos tendrán EDAD6= 0.
2. Periódicamente se recorre la tabla. Para cada enlace, si envı́o LSP vale 1, se envı́a el LSP
correspondiente y se mantiene envı́o LSP a 1. Si envı́o ACK vale 1, envı́a ACK y se le asigna
el valor 0 a envı́o ACK. El razonamiento que lleva a este comportamiento es el siguiente:
manteniendo envı́o LSP a 1 me aseguro de que el paquete llegará a su destino, ya que
lo estaré retransmitiendo hasta que me llegue confirmación de su llegada. Sin embargo el
ACK sólo lo envı́o una vez, ya que, si se perdiera el paquete, el LSP correspondiente me
serı́a reenviado por el emisor original y yo volverı́a a confirmarlo.
3. Si recibe un LSP por enlace j: Si es nuevo (de otro enlace que no tenı́a) o es más reciente
(de un origen que ya tenı́a pero con un SN mayor) se realiza lo siguiente:
Redes de Telecomunicación 80
haber puesto envı́o LSP a 0 en el enlace. Entonces, enviarle un ACK no tiene sentido, ya
que el único uso del ACK es forzar al otro extremo a poner envı́o LSP a 0 en el enlace.
6. Si se recibe algo que no cumple ninguno de los casos anteriores, se rechaza el paquete.
Hasta ahora, siempre hemos considerado que la edad del paquete tenı́a un valor distinto a
0. Veamos la utilidad de este campo: Si tenemos un LSP en memoria y la edad llega a 0:
Se olvida completamente del origen que envió el LSP que llegó a edad 0.
Si ese origen le manda un nuevo LSP lo trata como si fuese un enlace nuevo.
Cuando alguien recibe un LSP con edad 0 y coincide con el que está en memoria (mismo
SN) responde con un ACK por ese enlace y se reenvı́a por los demás enlaces para informar que
ese nodo no está accesible por ese enlace. Se esperan ACKs hasta que venza el temporizador. Si
vence, nos olvidamos del enlace.
Si se recibe un LSP con edad 0 en el que no se conoce el origen o no coincide con el SN,
el LSP no se propaga para que no se queden viajando por la red y solo se enviarı́a un ACK al
emisor. (Para más información sobre encaminamiento, consultar ”Interconnections”, de Radia
Perlman, Ed Addison-Wesley)
Problema: ¿Cómo se propagarı́an los paquetes LSP cuando cae el enlace A-E si nos centra-
mos únicamente en aquellos cuyo origen es A? ¿Cuántas copias aparecerı́an en total?
Redes de Telecomunicación 82
En una LAN tenemos un medio compartido que utilizan todos los nodos de la red. Si
intentamos utilizar el algoritmo de los LSP tal y como estaba, cada router verá un enlace virtual
con cada máquina de la red. Esto provoca que todos los routers pertenecientes a la misma LAN
se consideren vecinos entre ellos, como si hubiera una malla de interconexión total uniéndolos.
Cada router tiene que poner el estado del enlace a cada uno de los vecinos, por lo que enviarı́a
un mensaje con tantas parejas enlace-estado como routers haya en la red. Esto multiplicado por
el número de routers lleva a un gran gasto de recursos.
Para solucionarlo, podemos transformar la malla virtual en una conexión en estrella virtual.
Para ello, se selecciona al uno de los routers, al que se llama router designado. Este router, además
de realizar las funciones de router normal, funciona como router designado, es decir, además de
su dirección origen presenta una dirección nueva que no existe fı́sicamente. Al usar un router
Redes de Telecomunicación 83
designado, no es necesario que cada router envı́e un LSP a cada nodo de la red. Simplemente
enviará un LSP con todas las parejas enlace-coste al router designado, y éste se encargará de
retransmitirlo en difusión.
Nótese que, aunque el paquete a enviar contenga la misma información, al enviarse a muchos
menos destinos se reduce considerablemente el tráfico en la red.
Figura 5.29: LSP que se envı́an si se usa router designado (en este caso, se ha designado al router
3.
Por otra parte, en una LAN no se envı́an asentimientos entre los nodos, ya que aumentarı́a
considerablemente el tráfico de la red. Para compensar esto el router designado envı́a un paquete
llamado SNP (resumen de los números de secuencia) a todos los nodos de la LAN. En el SNP
se indican los números de secuencia de los LSP de todos los nodos de la red. Los vecinos lo
Redes de Telecomunicación 84
comparan con lo que tienen en memoria y sólo en el caso de que no concuerde (SN menor) le
pide que le retransmita el paquete. En caso de que el nodo detecte que su SN es mayor que el del
SNP (significarı́a que se ha perdido un LSP antes de llegar al router designado), el nodo envı́a
el LSP de nuevo.
Dominio administrativo: comprende una parte de la red que es administrada por una única
autoridad.
Autonomı́a de gestión: la división permite que los propietarios o gestores sean los adminis-
tradores de la red. Además, se puede decidir qué información se comparte con el exterior
y cuál se mantiene oculta.
Intradominio: propaga información dentro de un mismo dominio. Los criterios que se usan
para el encaminamiento son técnicos. Busca optimizar la eficiencia. Algunos son:
Interdominio: transmite información entre distintos dominios, que pueden presentar dis-
tintos criterios para el encaminamiento, basados en cuestiones administrativas. Permiten
formular restricciones sobre el tráfico encaminado. Algunos son:
• Encaminamiento manual.
• En TCP/IP, se usan EGP (External Gateway Protocol) y BGP (Border Gateway
Protocol).
• En OSI, se usa IDRP (Inter-Domain Routing Protocol).
Intradominio: Poseen unicidad de criterios (se basa en criterios técnicos). Buscan optimizar
la eficiencia.
Interdominio: Poseen distintos criterios (basados en criterios administrativos o polı́ticos).
Estos criterios son más restrictivos que los anteriores.
Definiciones:
D.A. (Dominio Administrativo): Parte de la red administrada por una sola autoridad.
Redes de Telecomunicación 86
Entre D.E.-D.E. y D.A.-D.A. se dan los protocolos interdominio mientras que entre áreas y
dentro de las áreas se dan los protocolos intradominio. Algunos de los protocolos existentes son:
Intradominio:
Interdominio:
Autonomı́a de gestión: Permite que los propietarios o gestores sean los administradores y
ocultar una serie de detalles internos de la red.
Obtener la información de alcanzabilidad través de otros dominios (es decir, otros dominios
me tendrán que comunicar a qué direcciones puedo llegar atravesándolos). Los dominios
que sirven para conectar a otros dominios se llaman dominios de tránsito.
Escoger el mejor camino. Hay que destacar que en este caso no se puede escoger el mejor
camino como el que tenga una mejor métrica, ya que distintos dominios pueden tener
conceptos distintos de lo que es la métrica (para uno puede ser el retardo, para otro el
número de saltos, etc.). Lo que sı́ se usará para escoger el mejor camino es el número de
dominios que hay que atravesar, procurando que este parámetro sea lo menor posible.
Los protocolos encargados de esta tarea son los protocolos interdominio. Pasemos a
analizar los 2 tipos de protocolos existentes:
Especificado en:
Emplea el VD (Vector Distancia). Por defecto, consideramos que el coste de cada enlace
es 1. Este protocolo mide el número de saltos. El máximo número de saltos es 15. Si es mayor
que 15, no se tiene en cuenta. De ahı́ que sea una buena elección de protocolo en caso de redes
pequeñas.
Cada 30 segundos se resfrescan los datos de los vecinos enviando un mensaje de anuncio. Si
en 180 segundos no se recibe información de algún vecino, toda la información acerca de él se
desecha.
Existen 2 tipos de mensajes:
Solicitud (REQ): fuerza a uno de los vecinos a que te envı́e un mensaje RESP.
Redes de Telecomunicación 88
La Versión 1 no soportaba máscaras mientras la Versión 2 sı́. Cada vecino se definirá por el
par dir.IP/Máscara. La estructura de un paquete RIP es (donde L2 representa la cabecera del
protocolo que se use en nivel de enlace):
Si observamos cómo se construye un paquete RIP, podemos ver dos cosas. Desde el punto
de vista de la eficiencia, es un desperdicio de cabeceras. Este gasto de cabeceras se justifica
porque haciéndolo ası́ es más fácil programar el protocolo en una máquina real. También debemos
resaltar el que use UDP (más concretamente, su puerto 520). Debido a esto, el envı́o de mensajes
es no fiable.
Este protocolo viene determinado en RFC 2328. La palabra .Open” que aparece en su nombre
significa que no es un protocolo propietario. Shortest Path First significa que emplea el estado
de los enlaces (LSP). No emplea ni Dijkstra ni Bellman-Ford.
Cada enlace tiene su propio coste. Por defecto será 1, pero lo usual es que el administrador
de la red asigna un valor inversamente proporcional a la capacidad del enlace. Se envı́an LSP,
por defecto, cada 30 minutos. Este protocolo se encapsula directamente sobre IP, pero indicando
en el campo protocolo de la cabecera IP que se trata de OSPF (identificador 89 en el campo
protocolo).
Algunas caracterı́sticas que presenta este protocolo son:
Multicast: Un paquete puede llegar a varios nodos. En realidad, se emplea una variante
llamada MCSPF (MultiCast Service Path Finding).
Para RAL, aparecen router designado y router designado de backup, por si falla el designado.
En OSPF, a los paquetes del estado de los enlaces se les denomina LSA (Link State An-
nouncement/Advertisement). Se distinguen 5 tipos de LSA:
Tipo 3 - LSP - Router borde de área hacia dentro del área resumiendo la información de
fuera del área pero dentro del dominio o viceversa.
Tipo 4 - LSP - Router borde de área hacia dentro del área indicando el camino hacia los
nodos o routers de salida.
Tipo 5 - LSP - Router de salida a todo el dominio indicando las redes accesibles fuera del
dominio basándose en los cálculos realizados mediante protocolos interdominio.
Redes de Telecomunicación 90
Está definido en las RFC 4271 (BGP-4), 1772 y 1773. Emplea un vector de caminos, algo
parecido al vector distancia pero que lista los AS (Sistemas Autónomos) que hay que atravesar
para llegar a un destino. Por tanto, requiere información de alcanzabilidad.
Los routers de salida establecen conexiones TCP entre ellos que se llaman sesiones BGP.
El protocolo TCP es fiable, es decir, se encarga de reenviar la información que se haya podido
perder. Existen dos tipos de sesiones BGP: las sesiones externas, o eBGP, que sirven para obtener
la información de alcanzabilidad, y las sesiones internas, o iBGP, que propagan la información
Redes de Telecomunicación 91
encontramos:
AS-PATH: Camino para llegar al destino. Se da como una lista de ASN (Número de
identificación de Sistema Autónomo, de 16 bits). Se emplea para decidir sobre el mejor
camino, que será aquel con menor AS-PATH.
NEXT-HOP: La dirección IP del que envı́a esa ruta. Es interesante para sistemas autóno-
mos conectados por varios routers.
Los router BGP manejan 3 tipos de bases de datos, en lugar de la RIB habitual. Éstas son:
RIB de entrada: contiene los anuncios recibidos de otros routers, filtrados mediante una
serie de polı́ticas de entrada. Es una tabla con una entrada por cada sesión BGP.
RIB local: es única para cada router, y es la que se usa para decidir el encaminamiento.
Se crea filtrando la RIB de entrada. Esta tabla, junto a la configuración del router y los
protocolos intradominio, forman la FIB.
RIB de salida: controla qué información se anuncia. Se forma filtrando la RIB local con la
polı́tica de salida.
3. Si hay varias con el mismo valor, se escoge aquella cuyo Next-Hop esté más cerca.
4. Si estuvieran todos a la misma distancia, se escoge según el identificador BGP, que es único
para cada router. Esta elección es simplemente para deshacer el empate, no tiene ningún
sentido.
Pedir un rango de direcciones privadas a uno de los dos ISP, y anunciarlo a ambos ISP. La
ruta se propagará por toda la red a través de ambos AS.
En ocasiones, varios sistemas autónomos se unen para crear una confederación. Aunque los
AS que las componen son independientes y tienen cada uno un ASN propio, de cara al exterior
se presentan como si formaran un único AS.
Redes de Telecomunicación 94
Vemos que la creación de confederaciones a veces evita que se pueda escoger el camino
óptimo. En la ilustración, si el AS 33 quisiera llegar hasta el ASN 38, el camino más corto serı́a
a través de 1, 37 y 4. Sin embargo, desde fuera vemos a la confederación como un sólo AS, no
tenemos acceso a información sobre los AS de su interior. Si siguiéramos ese camino, estarı́amos
entrando dos veces en el AS 15, lo cual no está permitido (se prohı́be que una ruta pase dos
veces por un mismo AS para evitar bucles). La ruta a seguir tendrı́a que ser la marcada con
lı́nea continua, que tiene un salto más que la ruta óptima.
Reflectores de rutas
Los reflectores de rutas se utilizan para evitar tener que realizar un mallado total de cone-
Redes de Telecomunicación 95
xiones iBGP dentro de un AS. El reflector de rutas está unido al mallado total, y además existen
varios nodos que se conectan únicamente al reflector de rutas. Aunque normalmente lo que se
aprende por una conexión iBGP no se puede retransmitir por otra conexión iBGP, el reflector
de rutas viola esta norma y envı́a toda la información de que dispone por sus enlaces. Mediante
el uso de reflectores se ahorra la creación de muchas conexiones, pero hay que tener en cuenta
que el reflector es un elemento centralizado, y como tal un fallo en el reflector serı́a catastrófico
para la red.
Veamos ahora un ejemplo real de configuración de un AS. Vamos a suponer que los routers
implicados utilizan el sistema operativo IOS (Internetwork Operating System) de Cisco. Los
comandos que utilizaremos son:
algunos de los comandos que tendremos que ejecutar en los routers son:
Al aumentar la carga, se llena la memoria de los nodos del sistema. Esto provoca que aumente
el retardo y se pierdan paquetes por saturación de las colas (overflow). Al perderse paquetes, es
necesario retransmitirlos, por lo que aumenta la carga. Esto provoca un cı́rculo vicioso que hace
que el sistema llegue al punto de bloqueo.
Para evitar este cı́rculo vicioso, se utilizan los mecanismos de control de congestión.
No hay que confundir mecanismos de control de congestión con mecanismos de control de
flujo. En control de flujo, el extremo receptor da órdenes al transmisor para que reduzca o frene
su transmisión. En control de congestión, es la red la que lo decide. El control de flujo puede ser
consecuencia del control de congestión.
• En los encaminadores: son los encaminadores los que tienen mayor responsabilidad
en el control de congestión.
• En los sistemas finales: la responsabilidad del control de congestión recae en su
mayor parte sobre los sistemas finales.
Ojo, aunque el lugar de realización sea en los encaminadores, siempre una pequeña parte
del procesamiento la tendrán que realizar los sistemas finales. Igualmente ocurre en el caso
contrario.
• Basados en realimentación: Los sistemas finales reciben órdenes sobre como de-
ben comportarse (es decir, si deben aumentar el tráfico que transmiten o reducirlo).
Redes de Telecomunicación 98
• Basado en créditos: el emisor recibe una serie de créditos. Por cada crédito, puede
introducir un paquete en la red. La asignación de créditos es dinámica, similar a una
ventana deslizante.
• Basados en tasa: el emisor tiene una velocidad máxima a la que puede transmitir
paquetes.
Capı́tulo 6
Capa de transporte
Fiabilidad.
Orientación a conexión.
99
Redes de Telecomunicación 100
6.2.1. UDP
Protocolo de Datagrama de Usuario (User Datagram Protocol). Definido en la RFC 768.
Es un protocolo con el cual se ofrece un servicio no orientado a conexión (CL, Connection
Less) y no fiable. Esto era prácticamente lo que ofreca el nivel de red, IP, pero la diferencia
es que con UDP se añade la capacidad de multiplexión (MUX). En UDP se utiliza el número
de puerto para multiplexión: los mensajes van a la misma máquina pero dentro de ella van a
una aplicación u otra dependiendo del número de puerto. Por tanto, una dirección UDP tiene la
forma:
Dirección U DP = Dirección IP + P uerto U DP (6.1)
En la cabecera UDP van el número de puerto origen y el número de puerto destino (al
igual que en la de IP iban la IP origen y la IP destino). Los números de puerto, al estar
Redes de Telecomunicación 101
formados por 16 bits, pueden ser del 0 al 65535. Sin embargo, el usuario no puede escoger
uno cualquiera: los puertos de 0 a 1023 están reservados para aplicaciones especı́ficas. Por
ejemplo:
• 69: puerto para TFTP, Trivial File Transfer Protocol (transferencia de ficheros trivial).
• 513: puerto para who, que permite conocer quien ocupa el equipo en ese momento.
La longitud total del segmento mide el tamaño del segmento completo (cabecera y datos)
en octetos.
6.2.2. TCP
Protocolo de Control de Transmisión (Transmission Control Protocol). Definido en la RFC
793. Con este protocolo se puede ofrecer un servicio orientado a conexión (CO,Connection Orien-
ted) y fiable (además de ofrecer multiplexión, al igual que UDP). Al ser un servicio CO es dúplex
(se pueden enviar datos en ambos sentidos, da igual quien haya iniciado la conexión). Dicha co-
nexión está identificada por una dirección TCP:
En la máquina con IP1 tengo 3 conexiones distintas con la misma IP y puerto origen. Las
conexiones con la máquina IP2 se diferencian en el número de puerto destino, puesto que TCP2
es distinto que TCP3 en IP2. Vemos que una conexión IP está definida unı́vocamente por
4 parámetros: IP origen, puerto origen, IP destino y puerto destino. Se pueden repetir
hasta 3 de estos parámetros en dos conexiones distintas, pero nunca los cuatro a la vez.
Redes de Telecomunicación 103
Podemos tener un servidor asociado a un número de puerto. Por ejemplo, si TCP1 fuera
el puerto asociado con un servidor FTP (puerto 21), estarı́amos transfiriendo ficheros hacia el
mismo puerto, pero desde máquinas distintas (llegan datos desde 2 y 3).
La fiabilidad es este tipo de conexión se puede conseguir mediante asentimiento y retrans-
misiones. Cada paquete tiene que ser asentido. Si enviamos datos y no recibimos asentimientos
durante un cierto tiempo, suponemos que se ha perdido la información y lo que hacemos es
retransmitir. El modelo que se usa en estos casos es el siguiente:
La máquina destino recibe en un buffer y, cuando comprueba que no falta nada y todo
está en orden, se lo pasa al nivel superior. Si llega bien, manda asentimiento. Si no, no manda
nada y espera a que se retransmita. La interfaz entre las capas (es decir, la forma de pasarse
los datos) no está normalizada. Sólo se obliga a que lo que se envı́a a la capa adyacente
esté en el mismo orden en que se envió. Al contrario que OSI, ni siquiera se obliga a que el
tamaño del paquete que se envió y el del paquete que el receptor pasa al nivel superior sea el
mismo. Tampoco está normalizado lo que se hace con los datos si algo no llega. Lo
normal es, si tienes una serie de paquetes pero te falta uno, que almacenes los que tienes y los
que van llegando hasta que el origen te reenvı́a el que te falta. Entonces, se pasan todos de golpe
al nivel superior. Lo que sı́ está normalizado es el conjunto de PDUs que se intercambian.
Normalmente, a la hora de enviar un datagrama, el nivel superior se lo envı́a al nivel
inferior. Este entonces lo pone en una cola, y lo transmite cuando considere oportuno. Hay dos
modificaciones de este funcionamiento:
Mecanismo PUSH: tampoco está normalizado. Mediante este mecanismo, el nivel superior
obliga al nivel inferior a enviar todo lo que tenga en el buffer lo antes posible. Existe un
Redes de Telecomunicación 104
flag dentro de la trama que se envı́a (recordemos que un flag es una variable binaria, que
puede valer 1 en caso de que algo sea cierto y 0 en caso de que sea falso) en la que se indica
que esos datos han sido mandados de forma obligada.
Datos urgentes: los paquetes que están marcados como datos urgentes pueden saltarse todas
las colas. Se ponen siempre al principio del segmento en el que viajan. En la cabecera, se
debe indicar que el segmento lleva datos urgentes (con un flag) y además es obligatorio
indicar cuántos de los datos son urgentes.
En TCP existe control de flujo: el receptor frena al emisor, diciéndole el receptor al emisor
la cantidad de octetos que puede enviar sin esperar asentimiento. Esto es lo que se llama tamaño
de ventana. Aquı́ se usa ventana deslizante (regulable según lo que desee el receptor). Como la
conexión es dúplex, lo que pasa en un sentido pasa también en el contrario.
Estudiemos la cabecera TCP en detalle:
Puerto origen y puerto destino: como ya hemos visto, se usa para multiplexión. Son de 16
bits cada uno (van de 0 a 65535)
Redes de Telecomunicación 105
Número de secuencia: en vez de numerarse los segmentos, se numeran los octetos (Los
octetos tienen su propio número de orden. Se pone el número del primer octeto que va
en el segmento). Tiene mucho sentido numerar los octetos en lugar de los segmentos, ya
que los segmentos pueden tener longitud variable. Hay que resaltar que el número con el
que se comienza a numerar los octetos es aleatorio, y se decide en el establecimiento de la
conexión. Un ejemplo serı́a:
Asentimiento: Se envı́a el número de orden del primer octeto que se espera recibir. A
la vez que mandas datos se pueden mandar asentimientos, para optimizar el gasto de ancho
de banda. El mecanismo de asentimiento se explica con detalle en el siguiente apartado.
THL (TCP Header Length, longitud de cabecera TCP): Contiene el tamaño de la cabecera,
en unidades de 4 octetos (32 bits). El tamaño mı́nimo de la cabecera TCP son 20
octetos, al igual que en la cabecera IP. Es obligatorio conocer este dato de memoria,
se puede preguntar expresamente en el examen.
Flags:
• URG: Indica que el paquete contiene datos urgentes. Recordemos que estos datos se
ponen al principio del segmento, se pueden saltar el orden normal y acceden al nivel
superior cuanto antes. Si no contiene datos urgentes, se pone a 0.
• ACK(ACKnowledgement, asentimiento): Si vale 0, se ignora el campo asentimiento.
Si vale 1, significa que el campo asentimiento de la cabecera contiene un asentimiento.
• PSH: se pone a 1 cuando se fuerza el PUSH. Ası́ cuando lo recibe el otro extremo,
sabe que son datos obligados (pushed) por el receptor.
• RST: bit de reset. Aborta la conexión cuando vale 1. Veremos su uso en un apartado
posterior.
• SYN (SYNchronous idle, espera sı́ncrona): se usa en el establecimiento de la conexión,
para ponerse de acuerdo ambos extremos.
• FIN: para el cierre de la conexión. Al contrario que RST, que cierra la conexión de
forma abrupta, con FIN se comienza un proceso de negociación para el cierre.
Tamaño de ventana: Le dice al receptor el número de octetos que puede enviar sin tener
que esperar asentimiento. Si está a 0, no podrá mandar nada.
Checksum: Aquı́ en el cálculo del checksum, también se tienen en cuenta las direcciones
IP (nivel inferior).
Campos opcionales: al igual que la cabecera IP, los campos opcionales deberán ser mútiplos
de 4 octetos. Si no lo son, se añadirá relleno hasta conseguirlo.
Detalles de TCP:
Funcionamiento de los asentimientos
Como se numeran los octetos, lo que se asienten son los octetos, no las tramas. Se usa un
tipo de asentimiento que se llama asentimiento acumulativo. Cuando asientes un octeto, asientes
todos los que han llegado antes que él.
Es un protocolo bueno porque es muy simple, pero da poca información. Eso podemos verlo
en el ejemplo anterior, con el paquete de número de secuencia 2500 (resaltado en un recuadro),
que se ha retransmitido sin ser necesario. Cuando perdemos una ráfaga de paquetes sabemos
que el primero se ha perdido, pero no sabemos si también se han perdido los que siguen. Hay
dos formas de enfrentarse a esta situación:
Ser agresivos: Retransmitir todo aunque lo demás no se haya perdido, pero de esta forma
gastamos ancho de banda y más recursos.
Podemos medir el tiempo desde que se transmite un segmento hasta que llega el ACK
correspondiente. Este tiempo se conoce como tiempo de ida y vuelta, RTT (Round Trip Time)
Redes de Telecomunicación 109
y nos puede servir para determinar el temporizador. El RTT medio es muy oscilante porque al
atravesar la red, el retraso es muy variable. Lo que se hace es una estimación, el RTT estimado,
según la siguiente fórmula:
Con ello conseguimos suavizar el RTT. También podemos calcular la desviación y suavizarla:
El resultado será un poco más grande que lo que tarda en llegar el ACK, pero no mucho
más.
Ahora se nos presenta un nuevo problema. Si retransmitimos un segmento y nos llega un
ACK, no podemos saber si ese ACK se refiere al segmento original o a la retransmisión.
El asentimiento de TCP es acumulativo y no hay forma de saber con qué original se mide
el asentimiento, por lo que no hay forma de medir el RTT. Para ello usamos el algoritmo de
KARN: Cuando hay que retransmitir no se calcula el temporizador con la fórmula de RTT.
En su lugar, con cada retransmisión se aumenta el temporizador de los segmentos enviados y no
asentidos al doble (hasta un valor máximo). Cuando no hay retransmisión ya se vuelve a medir
el temporizador mediante la fórmula.
Control de congestión de TCP:
Redes de Telecomunicación 110
En TCP, cuando el extremo que está transmitiendo estima que la red está congestionada,
se frena. Pero el resto de los protocolos no se frenan (por ejemplo UDP), ası́ que utilizan lo que
deja libre TCP y acaban saturando la red. Por tanto, aunque históricamente se llame çontrol de
congestión”, realmente lo que hace es ayudar para que no haya congestión, no la controla. Serı́a
un control de congestión si todas las comunicaciones de una red se hicieran usando el protocolo
TCP exclusivamente.
Hemos visto que en los segmentos aparece un campo que especifica la ventana indicada por
el receptor. Además de esa, en TCP hay otra ventana que es la ventana de congestión, la cual
se va reduciendo cuando se estima que hay congestión. El mı́nimo de estas dos ventanas es la
ventana autorizada (lo que puedo transmitir sin esperar asentimientos).
Arranque lento: Se utiliza cuando empezamos a aumentar la ventana. Por cada ACK que
llegue, se incrementa la ventana de congestión en el tamaño de 1 segmento.
Otro protocolo, sin nombre: Se utiliza cuando se alcanza cierto umbral mediante el proto-
colo anterior. En este caso, se incrementa la ventana en el tamaño de 1 segmento cada vez
que se recibe ACK para toda la ventana (es decir, tantos asentimientos como segmentos
quepan en la ventana). Por ejemplo, con segmentos de 1000 octetos y una ventana de 3000
octetos, al recibir 3 asentimientos la ventana pasará a valer 4000 octetos.
Una aclaración: la notación del nombre de los protocolos puede dar lugar a equı́vocos. El pro-
tocolo de arranque lento en realidad es más rá1pido que el segundo. En el primero, cuando
recibes un asentimiento ya puedes mandar más datos. En el segundo, necesitas varios asenti-
mientos antes de aumentar la ventana.
Mecanismo Fast Retransmit-Fast Recovery:
Redes de Telecomunicación 111
1. Uno de los extremos envı́a un paquete, compuesto sólo de una cabecera con el bit SYN a
1 (expresa el deseo de iniciar una conexión) y un número de secuencia arbitrario X (será1
el número de secuencia inicial en ese sentido de la transmisión).
2. El otro extremo le responde con otro paquete, compuesto exclusivamente de una cabecera,
con el bit SYN a 1 (él también desea establecer una conexión en el otro sentido, recordemos
que en TCP las conexiones son dúplex), el número de secuencia Y (número de secuencia
inicial en su sentido de la transmisión) y asiente el número de secuencia X que le envió el
otro extremo con un ACK a X+1.
3. El extremo que inició el procedimiento indica que su número de secuencia es ahora X+1,
y asiente el número de secuencia enviado por el otro extremo con un ACK a Y+1. En
este momento, se considera que la conexión está establecida y se pueden empezar a enviar
datos en ambos sentidos. De hecho, el extremo de la izquierda podrı́a haber empezado a
enviar datos justo después de recibir el asentimiento a X+1.
Redes de Telecomunicación 112
Una conexión se considera cerrada cuando se recibe el asentimiento al paquete que contenı́a
el bit FIN a 1. Es necesario cerrar cada uno de los dos sentidos.
Hay un caso especial de cierre de conexión, llamado liberación abrupta. Se suele dar
cuando hay algún error. El cierre de la conexión es sin negociación, inmediato y no requiere
asentimiento. Veamos dos ejemplos en los que se da este tipo de cierre:
Aspectos del rendimiento de TCP: Recordemos que TCP tiene una cabecera de ta-
maño mı́nimo 20 octetos e IP tiene una cabecera de tamaño mı́nimo 20 octetos. Por otra parte,
el nivel de enlace que se use también tendrá su propia cabecera que añadir a esto. Esto quiere
decir que, independientemente del tamaño de los datos, estamos transmitiendo una cabecera de
al menos 40 octetos en cada datagrama.
Existe un fenómeno, llamado sı́ndrome de la ventana tonta (Silly Window Syndro-
me), en el que se desperdicia mucho ancho de banda en cabeceras. El fenómeno consiste en lo
siguiente:
El extremo receptor (B) necesita que el extremo transmisor (A) se frene momentáneamente
porque el buffer de recepción de B está saturado. Para ello, le envı́a como tamaño de
ventana de transmisión el valor 0.
Redes de Telecomunicación 114
Para evitar esto, cuando B envı́e un tamaño de ventana 0 a A, tendrá que esperar antes de
cambiar el tamaño de ventana de transmisión de A. No podrá enviarle un tamaño de ventana
distinto a A hasta que ocurra una de estas dos condiciones:
También puede darse la situación de que el transmisor tenga poca información que enviar.
En ese caso, se hace lo siguiente:
Si todo lo que A ha enviado está asentido, A envı́a lo poco que tenga que enviar (aunque
sólo sea un octeto).
Si falta algo de lo que A ha enviado por asentir, A espera a tener bastantes datos para
llenar un segmento o bien a que llegue un asentimiento. Entonces, A puede transmitir.
PROBLEMA:Sean dos sistemas finales con la siguiente torre de protocolos:
Redes de Telecomunicación 115
Figura 6.18: Liberación abrupta por exceso de retraso durante establecimiento de conexión
Retardo de propagación:105ns
Se pide:
FUNCIONAMIENTO DE LAPB:
LAPB es un protocolo del nivel de enlace. Para tramas sueltas se tiene una sobrecarga de
6 octetos. Para tramas continuas se tiene una sobrecarga de cabecera con 5 octetos (porque el
”guión”del final sirve para la trama siguiente, como si fuera el del principio de la trama).
A la hora de decidir el tamaño de los segmentos TCP, nos encontramos con un problema
de optimización. Cuanto mayor sea el segmento, mayor es el rendimiento (ya que hay más datos
para la misma cabecera). Pero, como tenemos una ventana limitada, también será mayor el
tiempo muerto que nos pasamos sin transmitir, mientras llega el asentimiento:
A la larga nos interesa estar el mı́nimo tiempo sin transmitir, que se haga 0, para tener envı́o
continúo en ese punto. Con ello disminuye el rendimiento (más cabecera para los mismos datos),
Redes de Telecomunicación 117
pero transmitimos más tiempo. Lo complicado es que la ventana TCP se mide en octetos y la
de LAPB en tramas.
Nota importante: El tiempo de asentimiento es fijo. Si nos sale que el número óptimo
de tramas a mandar antes de que llegue el asentimiento de la primera es mayor que 6, hay que
truncar a 6 porque la ventana de transmisión de LAPB no deja transmitir más de 6 tramas.
Capı́tulo 7
Además, se permiten dos simplificaciones para las direcciones: se puede sustituir una
cadena de ceros de cualquier longitud por ::, y además los últimos 4 octetos se pueden
representar igual que se representaban las direcciones en IPv4. Aplicando esto al ejemplo
anterior, la dirección serı́a equivalente a poner:
3F F E : 0501 : 0008 :: 0260 : 97F F : 254.64.239.171
Es importante tener claro que sólo se puede sustituir una cadena de ceros por
118
Redes de Telecomunicación 119
::. Si hay varias, como en la dirección anterior, lo normal es escoger la más larga.
Al igual que en IPv4, existe una serie de direcciones especiales. Antes de explicarlas, vamos
a aclarar la notación que vamos a utilizar para representarlas. En IPv6, un prefijo de dirección
especial se representa como:
Dirección IPv6/número
y se interpreta como que todas las direcciones que empiecen por los primeros núme-
ro bits de la Dirección IPv6 pertenecen a ese tipo de direcciones. Por ejemplo, si decimos
que la dirección de tipo multicast es F F 00 ::/8, nos referimos a que cualquier dirección cuyos
primeros 8 bits coincidan con los primeros 8 bits de F F 00 :: es una dirección multicast. En este
caso en particular, estarı́amos diciendo que una dirección que empiece por 11111111 (FF) es una
dirección multicast.
Hay que tener mucho cuidado con esto, ya que estamos representando las direccio-
nes en hexadecimal y la máscara como número de bits. Esto puede llevar a situaciones
curiosas: por ejemplo, si decimos que una dirección Unique Local Unicast (se verá más tarde) em-
pieza por F C00 ::/7, hay que tener una especial precaución. FC, en binario, equivale a 11111100.
Como tomamos los 7 primeros bits, valdrán tanto las direcciones que empiezan por 11111100
(FC) como las que empiezan por 11111101 (FD). ¡Por tanto, una dirección que empiece por FD
también entra dentro de F C00 :: /7!
Unspecified(no especificadas): Son las direcciones ::/128 (todos los bits a 0). Se usan en el
campo origen cuando queremos enviar algo y todavı́a no tenemos una dirección asignada.
Loopback (bucle local): Son las direcciones ::1/128 (todos los bits a 0 y el último a 1).
Equivalente a 127.0.0.1 de IPv4.
IPv4-mapped (direcciones IPv4 ”mapeadas”): Son las direcciones ::FFFF:0:0/96 (80 bits
a 0, 16 bits a 1 y después cualquier dirección de 4 octetos). Sirven para encapsular direc-
ciones IPv4 en IPv6.
Multicast (para múltiples destinos): Son las direcciones FF00::/8 (primeros 8 bits a 1).
Existen varias direcciones especiales:
Redes de Telecomunicación 120
◦ Difusión para nodos local: Es la dirección FF01::1. Alcanzan todas las entidades
IP dentro de un mismo nodo.
◦ Difusión para nodos en el enlace: Es la dirección FF02::1. Los paquetes llegan a
todos los nodos alcanzables sin pasar por un router.
◦ Difusión para routers local: Es la dirección FF01::2. Alcanza al propio nodo que
la envı́a.
◦ Difusión para routers en el enlace: Es la dirección FF02::2. Los paquetes llegan a
todos los routers alcanzables sin atravesar un router.
◦ Difusión para routers en el site: Es la dirección FF05::2. Los paquetes llegan a
todos los routers que pertenecen al site, es decir, a los routers que pertenecen a
nuestra red interna. El paquete llegará hasta el borde de la red que controlamos
nosotros (hasta el router de salida a Internet).
Es decir, se toma como prefijo la dirección FF02::1:FF00:0/104 (el paquete empieza por
FF02::1:FF) y se ponen a continuación los últimos 24 bits de la dirección unicast asociada.
A nivel de enlace, la dirección MAC destino que se utiliza en Ethernet se crea de esta forma:
esto es, copiamos los últimos 32 bits de la dirección IPv6 destino como últimos 32 bits
de la dirección MAC, y lo prefijamos con 2 octetos que nos van a indicar que es una dirección de
difusión: 33 33. Cuando un nodo reciba un paquete con esta dirección de enlace, lo aceptará por
empezar por 33 33. Entonces mirará los últimos 4 octetos de la dirección MAC: si se corresponden
con los últimos 4 octetos de su dirección IP multicast solicitada, aceptará el paquete. En caso
Redes de Telecomunicación 121
contrario, lo descartará. La ventaja de usar este método es que todos los cálculos anteriores se
pueden programar a nivel hardware, con lo que se consigue una gran velocidad.
Existe una pequeña probabilidad de que varios nodos tengan iguales los últimos 32 bits
de la dirección multicast solicitada. Si eso ocurriera y el nodo aceptara el paquete por error, al
pasarlo a su nivel de red se darı́a cuenta de que la dirección IP destino no es la suya y descartarı́a
el paquete entonces.
Unicast: Son direcciones que representan a una interfaz (como en IPv4), o bien a un
grupo de interfaces (esto es una novedad de IPv6). La utilidad de asignar una misma
IP a varias interfaces es, en general, para conseguir un reparto de carga:
Haciendo esto ası́, los paquetes que vayan al router podrán llegar a él por 3 interfaces
diferentes, sin necesidad de que los equipos de la LAN lo sepan. Existen tres tipos de direcciones
unicast:
Link Local Unicast (Direcciones locales al enlace): Son las direcciones FE80::/10 (empie-
zan por 1111 1110 10). Su ámbito de validez es un enlace de IPv6 (en IPv6 se considera un
enlace a un conjunto de máquinas unidas por un medio común, tal que en él las máquinas
se pueden comunicar sin que sus paquetes atraviesen un router). Por tanto, dos
nodos a los que se les haya asignado una dirección local al enlace sólo pueden comunicarse
entre sı́ si no hay routers entre ellos. Es un mecanismo parecido al de las direcciones priva-
das de IPv4: se pueden repetir direcciones en distintas redes privadas. Además, los nodos
pueden asignar automáticamente este tipo de direcciones.
Unique Local Unicast (Direcciones locales únicas): Son las direcciones FC00::/7 (empie-
zan por 1111 110). Son muy parecidas a las anteriores con la ventaja de que, al ser más
amplia la parte variable de la dirección, es muy poco probable que dos de estas direcciones
Redes de Telecomunicación 122
coincidan. Por tanto, siempre que no se salga a una red pública (Internet), la probabilidad
de que dos máquinas puedan comunicarse entre sı́ es alta incluso aunque haya que atravesar
distintos enlaces o incluso sites.
Global Unicast (Direcciones globales): Son direcciones únicas en el mundo. En teorı́a, cual-
quier dirección que no caiga en ninguno de los rangos de direcciones especiales, es una
dirección global. En la práctica, hasta ahora sólo se han asignado las direcciones 2000::/3
(empiezan por 001).
Las direcciones que no empiecen por 000 (en binario) han de tener obligatoriamente 64
bits de interfaz. Se aconseja que los valores del tamaño del prefijo global sean n= 48 bits (si se
van a crear subredes) o n= 64 bits(si sólo va a haber una red). Sin embargo, en algunos casos
particulares se utilizan prefijos globales de n¡48 bits. Por tanto, la forma de una dirección IPv6
que no empiece por 000 será:
Manual
Por autoconfiguración: al arrancar, cada nodo genera una dirección local al enlace o una
dirección global (según lo especificado por la RFC 2462). En este tipo de asignación, la
parte de red de la dirección generada puede ser:
• Para otro tipo de direcciones, la dirección de red se toma de anuncios periódicos que
hace el router a toda la red. En dichos mensajes, el router anuncia tanto su dirección
(para que los nodos la tomen como dirección de gateway) como el prefijo que deben
tener los nodos de la red.
Para explicar cómo se genera la parte de host, es necesario conocer las direcciones de nivel
de enlace que existen en la actualidad. Las que se suelen utilizar son dos:
• Direcciones MAC: Son un estándar del IEEE (rec. 802.1). Son direcciones de 48 bits,
únicas en el mundo.
• Direcciones EUI-64: Son un estándar más moderno del IEEE. Son muy parecidas a
las direcciones MAC, pero su tamaño es de 64 bits en lugar de 48.
En ambos casos, los dos últimos bits del primer octeto de la dirección son bits con un
significado especial. El bit número 7 es el bit global/local. Dicho bit indica si una dirección
es única en el mundo (si vale 0) o bien puede estar repetida (si vale 1). El bit de gru-
po/individual se utiliza para identificar si la dirección destino es una dirección individual
(si vale 0) o una dirección de grupo (si vale 1).
Una vez conocemos los tipos de direcciones existentes, veamos cómo se usan al generar una
dirección IPv6 por autoconfiguración:
Clase de tráfico: marca los datagramas según el tipo de tráfico que transportan (sensible
a retardos, de baja prioridad, etc.)
Etiqueta de flujo (Flow Label): Se asigna la misma etiqueta a paquetes que estén relacio-
nados entre sı́ (por ejemplo, a aquellos que pertenezcan a una misma conexión).
Longitud de la carga (o payload): mide lo que hay después de los 40 octetos de cabecera.
Se mide en octetos.
Next Header (siguiente cabecera): En IPv6, los parámetros opcionales se incluyen como
extensiones de la cabecera dentro de la carga. Next Header indica de qué tipo es la primera
cabecera que hay en la carga. Algunos valores son:
• 6 - TCP
Redes de Telecomunicación 125
• 17 - UDP
• 58 - ICMPv6
• 0 - Hop-by-hop options
• 60 - Destination options
Lı́mite de saltos (Hop Limit): equivale al TTL de IPv4. Define el número máximo de routers
que puede atravesar el paquete antes de ser descartado.
Cabecera de opciones salto a salto (Hop By Hop Options): Esta cabecera la lee e interpretan
todos los routers que atraviese el paquete.
Las opciones se codifican mediante TLV (Tipo, Longitud, Valor). En este tipo de codifica-
ción, cada opción estará compuesta de un campo tipo de tamaño fijo, un campo longitud
de tamaño fijo y un campo valor de tamaño indicado por el campo longitud. El tipo de la
opción indica varias cosas:
• Si el router descarta el paquete, si debe avisar al origen con un mensaje ICMP o no.
Cabecera de enrutamiento (Routing): permite que el nodo origen del mensaje especifique
una serie de routers por los cuales el mensaje debe pasar obligatoriamente. Es parecido al
source routing de IPv4. Su forma es:
Redes de Telecomunicación 126
• Destinos: son las direcciones IP de los routers que deberá atravesar el paquete.
Vemos como el paquete del ordenador con IP a router (IP ) como dirección destino en la
cabecera IP. Cuando el paquete llega al router b b, éste lo interpreta y, como el número de
segmentos restantes es 3, cuenta 3 IPs desde el final de la cabecera de routing y copia la
IP que encuenta (IP ) en el campo destino de c la cabecera IP. Al mismo tiempo, pone la
que estaba en el destino IP donde estaba IP . c Esto se hace ası́ para que el destino final
sepa por qué routers ha pasado la información. Este procedimiento se repite hasta que el
número de segmentos restantes es 0, en cuyo caso la máquina que interpreta el paquete
sabe que es para ella.
Algo a resaltar es que, aunque estemos especificando una serie de routers por los
que el paquete debe pasar obligatoriamente, entre ellos puede pasar por routers
que no hayamos especificado.
Si se envı́a un mensaje con estas caracterı́sticas, los nodos de la lista de enrutamiento verán
la cabecera de opciones de destino 1 (ya que el paquete marca su IP como destino en la
cabecera IP). Sin embargo, la cabecera de opciones de destino 2 sólo la verá el nodo final.
Redes de Telecomunicación 127
Tipo (8 bits): indica el tipo de mensaje. Si es un mensaje de error se representa con el bit
más significativo a 0; un mensaje de información se representa con el bit más significativo
a 1.
Código (8 bits): sirve para distinguir los diversos mensajes de cada tipo. Si para un cierto
tipo sólo hay un mensaje, vale 0.
Cuerpo del mensaje: su estructura varı́a según el mensaje que estemos transmitiendo.
RS (Router Solicitation, solicitud a router): Este mensaje lo envı́an los nodos a los
routers cuando necesitan conocer algún parámetro de éstos. Se envı́an con la dirección
multicast de routers como destino.
• Sondeo (Probe): comprueba que un nodo esté accesible. Esto es útil, por ejemplo, si
un nodo ha estado comunicándose con otro durante un tiempo, y esa comunicación ha
terminado. Para volver a comunicarse con el mismo nodo, primero deberá comprobar
si aún sigue funcionando con la misma dirección. Para ello, enviarı́a un mensaje probe
al nodo.
Cuando el nodo móvil está conectado en su red origen, tiene asignada una dirección a la
que llamaremos HA (Home Address). En este estado, el nodo se comporta como cualquier nodo
normal de la red: un mensaje dirigido al CN llevará como dirección destino la del CN, como
dirección origen la HA y se enviará al home agent para que lo enrute.
Si el nodo móvil se conecta a otra red, tendrá que cambiar su dirección a una perteneciente
a la nueva red. A esta nueva dirección la llamaremos CoA (Care-of Address, literalmente
dirección de cuidado). Para que los mensajes dirigidos a la HA sigan llegando al nodo móvil, lo
que hace el nodo móvil es establecer un túnel con su home agent. Para ello, envı́a un mensaje
BU (Binding Update, actualización de enlace) a su home agent, en el que indica su CoA.
El home agent responde con un mensaje BA (Binding Acknowledge, asentimiento de
enlace).
El túnel que hemos creado consiste en que el home agent actúa de repetidor. Cuando recibe
un mensaje IPv6 con dirección destino la dirección HA, encapsula dicho mensaje dentro de otro
mensaje IPv6 con dirección destino CoA y lo envı́a. Con eso consigue que el traslado del nodo
móvil sea transparente a la red. Para optimizar la comunicación, existe la posibilidad de que el
nodo móvil envı́e al nodo correspondiente un BU. Si el nodo correspondiente está configurado
para entender los BU, se puede establecer comunicación entre ellos. Se utilizan cabeceras de
enrutamiento para .engañar.a TCP, de modo que vea la dirección CoA como HA.
IPsec, definido en las RFC 4301-4309, 2403-2405 y 2410-2412, es un mecanismo que sirve
para asegurar la confidencialidad y la integridad a través de una red IP. Encripta los mensajes
y permite averiguar si han sido modificados a lo largo del trayecto.
IPsec implementa:
Redes de Telecomunicación 130
Protocolos de seguridad:
Las VPN (Virtual Private Net, red privada virtual) son redes privadas virtuales que se
crean sobre una infraestructura pública. Es común usarlas para conectar distintas sucursales de
una empresa. Es una alternativa barata al alquiler de enlaces punto a punto. Como problemas,
presenta la seguridad (puede haber mensajes importantes viajando a travñes de una red no
segura) y el consumo de ancho de banda.