TEMA 11: La capa de red en Internet.

Anuncio
Adquisición y Tratamiento de Datos
La capa de red en Internet
TEMA 11: La capa de red en Internet.
11.1 Introducción.
La capa de red en general, y la de Internet en particular, es la encargada de llevar
los paquetes desde el origen hasta el destino. Es la primera capa desde el origen al
destino, pues las capas anteriores tan solo se encargaban de que los datos llegaran
correctamente de un extremo a otro de un enlace de comunicaciones, generalmente un
cable. Llegar al destino puede requerir muchos saltos por dispositivos intermedios,
generalmente routers.
Para lograr su cometido, la capa de red conoce la topología de la red de
comunicaciones y escoge las trayectorias adecuadas a través de ella. También debe
tener cuidado al escoger las rutas para evitar sobrecargar algunas líneas de
comunicación y routers, mientras deja a otros sin trabajo. Además, si el origen y el
destino están en redes diferentes, es misión de la capa de red el manejo de estas
diferencias y la resolución de los problemas que causan.
La capa de red debe proporcionar un interfaz con la capa superior (la capa de
transporte) de forma que:
1. Los servicios deben ser independientes de la tecnología de subred.
2. La capa de transporte debe estar aislada de la cantidad, tipo y topología de las
subredes presentes.
3. Las direcciones de red disponibles para la capa de transporte deben seguir un
plan de numeración uniforme, aun a través de varias LAN y WAN.
Con solo estos objetivos, la capa de red posee una gran libertad para especificar
los servicios que ofrecerá a la capa de transporte.
11.2 Organización interna de la capa de red.
La libertad existente en la especificación de la capa de red, genera la posibilidad
de que la capa de red proporcione servicio orientado o no orientado a conexión. Si el
servicio es orientado a conexión, la complejidad de la comunicación la asume la capa de
red, mientras que si es no orientado a conexión, la complejidad es asumida por la capa
de transporte, que es propia de cada ordenador conectado a la red1.
La utilidad de la orientación a conexión se basa en evitar tener que escoger una
ruta nueva para cada paquete enviado. Cuando se establece una conexión, se escoge y
recuerda una ruta de la máquina de origen a la de destino como parte del
establecimiento de la conexión. Esa ruta se usa para todo el tráfico que fluye por la
conexión (circuito virtual).
1
Las conexiones son conocidas como circuitos virtuales, mientras que los paquetes independientes sin
conexión son conocidos como datagramas.
Ciencias y Técnicas Estadísticas
1
Adquisición y Tratamiento de Datos
La capa de red en Internet
Como los paquetes que fluyen por la conexión siempre siguen la misma ruta a
través de la red, cada router debe recordar a dónde envía los paquetes para cada una de
las conexiones que pasan por él. Por ello, cada router mantiene una tabla con una
entrada por conexión abierta que pasa a través suyo. Al llegar un paquete al router, esté
sabe la línea por la que llegó y el número del circuito virtual, con lo cual puede
determinar la línea de salida correcta.
Por contra, en una red no orientada a conexión, no se determinan rutas por
adelantado, aún en el caso de que el servicio en la capa de transporte esté orientado a
conexión. Cada paquete se envía de manera independiente de sus antecesores, de forma
que dos paquetes sucesivos pueden seguir rutas distintas. Esto hace las redes de
datagramas más robustas y más adaptadas a posibles fallos, pero aumenta el trabajo que
deben realizar.
En el caso de datagramas, los routers tienen una tabla que indica la línea de
salida a usar para cada router de destino posible. Cada datagrama debe contener la
dirección de destino completa, de forma que al llegar un paquete a un router, esté busca
la línea de salida a usar y envía el paquete. El establecimiento y liberación de
conexiones no requiere ningún trabajo especial por parte de los routers.
11.3 Algoritmos de encaminamiento.
Una función fundamental de la capa de red en los routers es decidir por que
interfaz se manda el paquete recibido. Con datagramas esto se hace para cada paquete;
con circuitos virtuales se hace sólo para cada nuevo circuito en el momento de efectuar
la llamada. Los algoritmos que se encargan de decidir por donde se manda cada paquete
recibido se conocen con el nombre de algoritmos de encaminamiento, pudiendo ser
estáticos o dinámicos.
En el encaminamiento estático, las rutas están basadas en información de la
topología obtenida previamente. Se fija cada posible ruta de antemano, según la
capacidad de la línea, el tráfico esperado u otros criterios. En cada router se cargan sus
tablas de rutas de forma estática, por lo que no necesita intercambiar ninguna
información de encaminamiento con sus vecinos, y por tanto no requiere para su
funcionamiento un protocolo de encaminamiento. Con el encaminamiento estático no es
posible responder a situaciones cambiantes (por ejemplo saturación, exceso de tráfico o
fallo de una línea), pero al realizar los cálculos a priori, es posible aplicar algoritmos
muy sofisticados, aun cuando su cálculo sea muy costoso.
En el encaminamiento dinámico las rutas se fijan en cada momento, en función
de información en tiempo real que los routers reciben del estado de la red. Se utilizan
algoritmos autoadaptativos y es preciso utilizar un protocolo de encaminamiento que
permita a los routers intercambiar continuamente información sobre el estado de la red.
Los algoritmos no pueden ser demasiado complejos pues han de implementarse en los
routers y ejecutarse cada poco tiempo.
Haciendo un símil podríamos decir que el encaminamiento estático consiste en
fijar la ruta al planear un viaje en coche usando únicamente los mapas de carreteras,
Ciencias y Técnicas Estadísticas
2
Adquisición y Tratamiento de Datos
La capa de red en Internet
mientras que el encaminamiento dinámico supondría modificar nuestra ruta sobre la
marcha en función de la información que recibimos sobre el estado de las carreteras, etc.
Estudiaremos a continuación algunos algoritmos de enrutamiento, pero antes,
conviene enunciar un principio fundamental, que aunque parezca obvio, es necesario
tener en cuenta. Este principio es conocido como principio de optimación y se enuncia
como:
Si B está en la ruta óptima de A a C, entonces el camino óptimo de B a C está
incluido en dicha ruta.
Una consecuencia importante de este principio es que todas las rutas óptimas
para llegar a un punto determinado forman un árbol, con raíz en el punto de destino, sin
bucles (spanning tree) y donde siempre es posible llegar al destino en un número finito
de saltos.
11.3.1 Encaminamiento por el camino más corto.
Para elegir el camino más corto debemos definir, en primer lugar, que
entendemos por distancia, pues es evidente que en redes de computadoras no tiene
mucho sentido emplear la distancia física2. Normalmente, la distancia se mide como una
combinación de los siguientes factores:
•
La inversa de la capacidad del enlace (información estática).
•
Tráfico medio (información estática y/o dinámica).
•
Retardo (información dinámica medida a partir de los paquetes enviados).
•
La inversa de la fiabilidad (información dinámica medida a partir de los
paquetes enviados).
El peso relativo que se da a cada uno de los factores que intervienen en el
cálculo de la distancia de la red se denomina métrica de la red. La métrica puede ser
fijada o modificada al configurar los routers, aunque los parámetros que entran en juego
y la fórmula que se utiliza para calcularla suelen estar muy relacionados con el
algoritmo y el protocolo de encaminamiento utilizados. Cuando un trayecto está
compuesto por varios tramos, la distancia del trayecto será igual a la suma de las
distancias de los tramos que lo componen.
Existen diversos algoritmos que permiten calcular el camino más corto entre dos
nodos de un grafo. Uno de los más conocidos es debido a Dijkstra, el cual se utiliza
tanto en encaminamiento estático como dinámico.
Para explicar el algoritmo de Dijkstra, supongamos una red con los nodos y
métrica indicada en la figura 11.3.1.1.
2
Ni siquiera tiene sentido emplear el número de routers por los que pasan los datos enviados, a no ser un
caso muy particular y simple en el que todos los enlaces tienen la misma capacidad.
Ciencias y Técnicas Estadísticas
3
Adquisición y Tratamiento de Datos
La capa de red en Internet
B
C
7
2
2
A
2
E
F
1
6
1
3
D
2
3
4
G
H
Figura 11.3.1.1: Ejemplo de red con los nodos y la métrica.
Deseamos calcular la distancia del nodo A al nodo D. Para ello, escogemos
como nodo de trabajo el nodo A. A partir de este nodo, examinamos todos los nodos
adyacentes, etiquetándolos con la distancia y el nodo desde el que se vino (en nuestro
ejemplo, B(2,A) y G(6,A)), marcando a continuación el nodo A como nodo examinado.
B(2,A)
C
B(2,A)
C(9,B)
7
2
7
2
A
E
2
F
1
6
1
3
2
D
2
A
H
G(6,A)
B(2,A)
C(9,B)
B(2,A)
2
C(9,B)
7
2
2
F(6,E)
1
6
1
3
2
E(4,B)
D
2
G(5,E)
2
A
2
H(9,G)
B(2,A)
C(9,B)
7
7
2
A
F(6,E)
1
6
1
3
2
E(4,B)
2
G(5,E)
2
D
2
A
H(8,F)
E(4,B)
3
H(8,F)
C(9,B)
7
1
3
2
1
6
2
B(2,A)
7
A
D(11,H)
4
G(5,E)
C(9,B)
2
F(6,E)
1
6
1
3
2
E(4,B)
3
4
B(2,A)
2
3
G(5,E)
C(9,B)
D
4
H
B(2,A)
F(6,E)
1
6
1
3
2
E(4,B)
3
4
2
3
H
7
A
D
4
G(6,A)
2
F
1
6
1
3
2
E(4,B)
3
4
2
F(6,E)
D(10,C)
2
3
4
G(5,E)
2
A
2
E(4,B)
1
6
H(8,F)
1
3
2
F(6,E)
D(10,H)
2
3
4
G(5,E)
H(8,F)
Figur
a 11.3.1.2: Aplicación del algoritmo de Dijkstra a la red de ejemplo.
Una vez hemos examinado el nodo A, vamos al nodo que posea la etiqueta más
pequeña, en este caso el nodo B, y repetimos el proceso hasta haber visitado todos los
nodos de la red. De esta forma obtenemos el camino más corto entre A y D, que en
nuestro caso es el ABCD. En la figura 11.3.1.2 podemos ver el ejemplo desarrollado de
forma gráfica.
Ciencias y Técnicas Estadísticas
4
Adquisición y Tratamiento de Datos
La capa de red en Internet
11.3.2 Encaminamiento por inundación.
Es un algoritmo muy simple consistente en enviar cada paquete por todas las
líneas de salida posibles, excepto por la que se ha recibido. Produce un exceso de tráfico
en la red, así como problemas en caso de existencia de bucles en la topología de la red.
Para limitar el problema de la existencia de bucles, se suele fijar un número
máximo de saltos, que suele ser igual al número de saltos que hay entre los dos puntos
más alejados de la red3.
Existe una variación de la inundación, conocida como inundación selectiva, en
la cual el paquete se envía sólo por las líneas que, aparentemente, se encuentran en la
dirección correcta; por ejemplo, si estamos en Madrid y el paquete va hacia Córdoba, se
enviará solamente por las líneas que van al Sur.
11.3.3 Encaminamiento basado en el flujo.
Este algoritmo toma en cuenta la cantidad de tráfico medio que soportan las
líneas y, con esta información, intenta optimizar el conjunto de las rutas para utilizar el
camino menos congestionado en cada caso. Para aplicarlo se ha de conocer bastante
bien el tráfico y éste ha de ser muy regular. Se pueden aplicar algoritmos relativamente
sofisticados, ya que el cálculo de rutas se hace a priori y se carga en el router después.
Este algoritmo solo se aplica en algunos casos de encaminamiento estático,
aunque puede ser útil para diseñar la topología de una red, como por ejemplo si se
conectan una serie de oficinas y se dispone de un estudio con el tráfico previsto entre
cada las diferentes oficinas.
11.3.4 Encaminamiento por vector distancia.
Este algoritmo se conoce como algoritmo de Bellman-Ford o Ford-Fulkerson,
que fueron sus autores. En este encaminamiento, cada router mantiene una tabla que le
indica la distancia mínima conocida hacia cada posible destino y la línea que debe
utilizar para llegar a él.
La tabla se actualiza regularmente con la información obtenida de los routers
vecinos, pues cada router manda la tabla completa de distancias a todos sus vecinos, y
solo a ellos. Con la información que tiene y la recibida de sus vecinos, cada router
puede calcular continuamente su tabla de distancias.
La métrica utilizada para medir las distancias puede ser el número de saltos, el
retardo medio, los paquetes procesados, etc., o una combinación de estos u otros
parámetros.
En éste algoritmo, las noticias buenas se propagan rápidamente, pero se
reacciona lentamente a las malas. Esto se conoce como el problema de la cuenta a
infinito. Se han ideado multitud de trucos para resolver este problema, pero para cada
3
El número máximo de saltos entre dos nodos de la red se conoce como tamaño o diámetro de la red.
Ciencias y Técnicas Estadísticas
5
Adquisición y Tratamiento de Datos
La capa de red en Internet
nueva propuesta se ha encontrado una situación patológica en la que falla, no existiendo
una solución definitiva a este problema.
11.3.5 Encaminamiento por el estado del enlace.
El encaminamiento basado en el estado del enlace apareció como un intento de
resolver los problemas que planteaba el encaminamiento por vector distancia,
fundamentalmente el de la cuenta a infinito. Se trata de un algoritmo más sofisticado y
robusto, compuesto por cuatro fases:
•
Descubrir los routers vecinos y averiguar sus direcciones.
•
Medir el retardo o costo de llegar a cada vecino.
•
Construir un paquete que resuma toda esta información, y enviarlo a todos los
routers de la red.
•
Calcular el camino mas corto a cada router.
Para cubrir estas fases los routers, cuando arrancan, envían paquetes de
presentación (HELLO) por todas sus interfaces; los paquetes HELLO son respondidos
con mensajes de identificación por los routers que los reciben. Además los routers
envían paquetes de prueba (ECHO) que son respondidos por el router remoto y miden el
tiempo de ida y vuelta.
Con la información obtenida el router construye un paquete de información y lo
envía a todos los routers de la red. Para ello utiliza inundación. Los paquetes se
numeran para detectar y descartar duplicados e ignorar paquetes obsoletos, por ejemplo
si llega el paquete 26 después de haber recibido el 28 se descarta. Además, cada paquete
tiene una vida limitada, al cabo de la cual es descartado. Con toda la información
obtenida el router construye el árbol de expansión de las rutas óptimas a cada destino de
la red aplicando el algoritmo de Dijkstra, obteniendo de esta forma la topología de la
red.
La principal diferencia entre este encaminamiento y el encaminamiento por
vector distancia, es que en el encaminamiento por vector distancia cada router envía
información sólo a sus vecinos, pero esta información incluye a todos los nodos de la
red. En cambio en el encaminamiento por el estado del enlace, cada router envía su
paquete de información a toda la red, pero éste solo contiene la relativa a sus vecinos
más próximos, permitiendo a cada router obtener el estado completo de la red, cosa que
no es posible con el encaminamiento por vector distancia.
Entre los protocolos de encaminamiento que utilizan algoritmos basados en el
estado del enlace destaca Open Shortest Path First, que es el protocolo estándar de
encaminamiento en Internet. Otro protocolo de estado del enlace también utilizado en
Internet y que proviene del mundo OSI es Intermediate System-Intermediate System.
IS-IS es multiprotocolo, es decir, soporta múltiples protocolos de red por encima.
Ciencias y Técnicas Estadísticas
6
Adquisición y Tratamiento de Datos
La capa de red en Internet
11.3.6 Encaminamiento jerárquico.
El encaminamiento jerárquico es una traslación a la informática del
encaminamiento que aplicamos a diario en nuestra vida a la hora de planificar un viaje.
En un viaje en coche de Valencia a París, por ejemplo, utilizamos un mapa detallado de
las zonas cercanas a Valencia y París, pero nos basta uno con las carreteras principales
una vez nos alejamos del origen o del destino.
A medida que una red crece, la cantidad información de encaminamiento
aumenta de forma exponencial, ya que cada router ha de calcular las rutas óptimas a
todos los demás. Esto incrementa el tráfico, la memoria en los routers, y la complejidad
de los cálculos necesarios para obtener las rutas óptimas. Como consecuencia de esto
los algoritmos de encaminamiento no son escalables.
Para reducir este problema las redes se organizan en niveles jerárquicos; se
divide la red en regiones, y sólo un número reducido de routers de cada región (los
routers “interregionales”) puede comunicar con el exterior. Las rutas quizá no sean tan
óptimas, pero se simplifica la gestión y el mantenimiento de las tablas de
encaminamiento y se reduce el tráfico de gestión de la red.
11.4 Algoritmos de control de congestión.
Denominamos congestión a la circunstancia en la que el rendimiento de la red se
degrada debido a la presencia de excesivo tráfico de paquetes en la red. Un ejemplo de
congestión sería la situación en la que un router, con varias líneas de 2 Mb/s, recibe
tráfico entrante por todas ellas dirigido a una sola. Inicialmente el router intentará salvar
la situación utilizando sus buffers de almacenamiento, pero si ésta situación dura
bastante tiempo, los buffers se llenarán y el router empezará a descartar paquetes
Normalmente la congestión se produce por tráfico excesivo, pero también puede
producirse por un router sobrecargado o de capacidad de proceso insuficiente para el
tráfico que soporta.
11.4.1 Principios generales del control de congestión.
Para efectuar una estrategia de control de congestión caben dos planteamientos:
•
Diseñar las cosas desde el principio para que la congestión no pueda llegar a
ocurrir.
•
Tomar medidas que permitan detectar la congestión y adoptar medidas
correctoras en su caso.
La primera técnica es más segura, pero puede provocar ineficiencias si se aplican
las limitaciones con demasiada severidad. La segunda permite aprovechar mejor la red,
pero en caso de congestión puede ser difícil controlar la situación.
Una vez producida una congestión solo hay dos posibles medidas:
Ciencias y Técnicas Estadísticas
7
Adquisición y Tratamiento de Datos
La capa de red en Internet
•
Reducir el tráfico solicitando al emisor que pare de enviar, o que busque rutas
alternativas.
•
Aumentar la capacidad, a corto plazo esto puede hacerse por ejemplo activando
canales RDSI, a más largo plazo será preciso contratar enlaces de más capacidad
o nuevos enlaces.
11.4.2 Factores que pueden influir en la congestión.
La principal causa de la congestión es el tráfico a ráfagas. Si todos los
ordenadores transmitieran siempre un flujo constante sería muy fácil evitar las
congestiones.
Los perfiles de tráfico (traffic shaping) establecen unos márgenes máximos al
tráfico a ráfagas. Suelen utilizarse para fijar una “calidad de servicio” (Quality of
Service) entre el operador y el usuario, de forma que si el usuario respeta lo establecido,
el operador se compromete a no descartar paquetes. El perfil de tráfico actúa como una
especie de contrato entre las partes.
Se denomina vigilancia del tráfico (traffic policing) a la labor de monitorización
o seguimiento del tráfico introducido por el usuario en la red para verificar que no
excede el perfil pactado.
11.4.3 Algoritmo del pozal agujereado.
Uno de los sistemas mas utilizados para establecer perfiles de tráfico es el
conocido como algoritmo del pozal agujereado (leaky bucket).
En este algoritmo, el ordenador puede enviar ráfagas, que son almacenadas en un
buffer (pozal) de la interfaz, la cual envía a la red un caudal constante. Si la ráfaga es de
tal intensidad o duración que el buffer se llena, los paquetes excedentes son descartados,
o bien son enviados a la red con una marca especial que les identifica como de “segunda
clase”, que hace que sean los primeros candidatos a descartar en caso de congestión.
Para definir un pozal agujereado se utilizan dos parámetros, el caudal ρ con que
sale el flujo a la red, y la capacidad C del buffer. Si suponemos, por ejemplo, que ρ=10
Mbps y C=5 Mbits, si un ordenador envía una ráfaga de 5 Mbits en 50 mseg
(equivalente a 100 Mbps), el pozal casi se llena. La ráfaga tardará en enviarse a la red
500 mseg, momento en el cual el pozal se habrá vaciado. Si el ordenador envía otra
ráfaga de 5 Mbits antes de que el pozal se haya vaciado por completo, el buffer se
llenará y se perderán los paquetes excedentes, o bien se enviarán marcados como
descartables.
El pozal agujereado resuelve el problema de las ráfagas en la red, pero no
estimula el ahorro, pues un usuario que esté continuamente transmitiendo con el caudal
ρ del agujero mantendrá vacío su pozal, y a la hora de enviar una ráfaga estará en
igualdad de condiciones respecto a otro usuario que no haya transmitido nada durante
cierto tiempo. Para fomentar el ahorro se desarrollo el algoritmo del pozal con créditos
Ciencias y Técnicas Estadísticas
8
Adquisición y Tratamiento de Datos
La capa de red en Internet
(token bucket), que compensa al usuario que alterna intervalos de tráfico con otros de
inactividad, frente al que esta siempre transmitiendo.
El mecanismo que sigue para ello es el siguiente: cuando el ordenador no envía
datos, el pozal va sumando créditos hasta un máximo igual a la capacidad del pozal. Los
créditos acumulados pueden utilizarse después para enviar ráfagas con un caudal M
mayor de lo normal hasta que se agoten los créditos, momento en el cual el caudal
vuelve a su valor normal ρ y el algoritmo funciona como el del pozal agujereado.
Podemos imaginar el pozal con crédito como dotado de dos agujeros, uno pequeño y
uno grande, con un dispositivo mecánico que permite abrir uno u otro, pero no ambos a
la vez; el agujero grande se abre cuando el usuario tiene créditos; el usuario acumula
créditos cuando el pozal no está tirando líquido por el agujero pequeño, bien porque en
el pozal no existe líquido que tirar, bien porque tenga abierto el agujero grande y
cerrado el pequeño. Los parámetros que definen un pozal con créditos son la capacidad
C del buffer, el caudal del agujero pequeño ρ y el caudal del agujero grande M4.
Supongamos, como ejemplo, que ρ=10 Mbps, C=5 Mbits y M=100 Mbps y que
como en el ejemplo anterior el ordenador envía una ráfaga de 5 Mbits en 50 mseg.
Existen ahora tres posibles situaciones en el pozal:
•
El pozal esta lleno de créditos (5 Mbits), por lo cual la ráfaga es enviada a la red
a 100 Mbps, la misma velocidad con la que envía el ordenador.
•
El pozal esta vacío de créditos, por lo cual la ráfaga se comporta exactamente
igual que en el pozal agujereado.
•
El pozal esta parcialmente lleno de créditos (por ejemplo, tiene 2,5 Mbits de
crédito iniciales). Dicha cantidad se incrementa a razón de 10 Mbps mientras
está el agujero pequeño cerrado, y mientras está el agujero grande abierto se
decrementa en 100 Mbps, por lo cual en un tiempo t los créditos son:
créditos totales = 2,5 Mbits + 10 Mbps *t
créditos consumidos = 100 Mbps *t
Igualando ambas expresiones tenemos 2,5+10t=100t, que despejando da un valor
de t=2,5/90=0,0278 seg = 27,8 mseg. Por tanto, el pozal se vaciara a 100 Mbps
durante 27,8 mseg y después se continuará vaciando a razón de 10 Mbps hasta
completar la ráfaga.
11.4.4 Paquetes de asfixia.
Los paquetes de asfixia se pueden aplicar tanto en redes de circuitos virtuales
como de datagramas. En esta técnica el router o conmutador comprueba regularmente
cada una de sus líneas, analizando, por ejemplo, el grado de utilización, la longitud de la
cola o la ocupación del buffer correspondiente. Cuando el parámetro inspeccionado
supera un determinado valor considerado umbral de peligro se envía un paquete de
asfixia ("choke packet”) al ordenador considerado "culpable" para que reduzca el ritmo.
4
El valor del caudal del agujero grande suele ser igual a la velocidad máxima de la interfaz física.
Ciencias y Técnicas Estadísticas
9
Adquisición y Tratamiento de Datos
La capa de red en Internet
Normalmente los paquetes de asfixia se envían a los ordenadores que generan el
tráfico, ya que son éstos y no los routers los verdaderos causantes de la congestión. Los
ordenadores, cuando reciben estos paquetes, suelen reducir, por ejemplo a la mitad, la
velocidad con la que envían datos a la red. Esto lo pueden hacer de varias maneras, por
ejemplo, reduciendo el tamaño de ventana del protocolo a nivel de transporte o
cambiando los parámetros del pozal agujereado o del pozal con crédito, si utilizan
alguno de estos algoritmos para controlar el flujo. En una situación de congestión
normalmente muchos ordenadores recibirán este tipo de paquetes.
En ocasiones interesa que los paquetes de asfixia tengan un efecto inmediato en
cada uno de los routers que atraviesan en su camino hacia el ordenador que genera el
tráfico; esto es especialmente importante cuando se trata de una conexión de alta
velocidad y elevado retardo. De esta forma la congestión se reduce de forma inmediata,
distribuyendo el tráfico en ruta entre los buffers de los routers que hay en el camino
mientras el mensaje de alerta llega al ordenador que genera el tráfico.
Por desgracia la obediencia a los paquetes de asfixia es completamente
voluntaria. Si un ordenador obedece las indicaciones y reduce su ritmo, mientras otro no
lo hace, el primero saldrá perjudicado pues obtendrá una parte aún menor de la ya
escasa capacidad disponible. No es posible obligar a los ordenadores a obedecer las
indicaciones de los paquetes de asfixia.
En situaciones de saturación se plantea el problema de como repartir la
capacidad disponible de forma justa entre los usuarios. Existen varios algoritmos que
intentan resolver este problema, por ejemplo:
•
Encolamiento justo (fair queuing): el router mantiene una cola independiente
por cada ordenador y envía los paquetes en turno rotatorio ("round robin"). En
este caso se da el problema de que al ser el reparto equilibrado en paquetes por
ordenador y unidad de tiempo, los usuarios o aplicaciones que manejan paquetes
grandes obtienen mas recursos que los que manejan paquetes pequeños. Una
versión mejorada de este algoritmo intenta hacer un reparto homogéneo en
número de bytes (o bits) transmitidos por ordenador y por unidad de tiempo.
•
Encolamiento justo ponderado (weighted fair queuing): es similar al anterior,
pero permite además establecer prioridades, ya que en ocasiones interesa dar
mas prioridad a algunas máquinas (por ejemplo servidores) o a algunos servicios
(aplicaciones interactivas, por ejemplo). La prioridad se puede establecer por
direcciones, por tipo de aplicación o por una combinación de estos u otros
factores. Además de prioridades también se pueden reservar capacidades para
ciertas direcciones o aplicaciones, por ejemplo "reservar el 30% de la capacidad
para el servidor de FTP" o "reservar el 20% de la capacidad para paquetes
provenientes de la dirección IP 147.156.1.1".
11.4.5 Derramamiento de la carga.
El último recurso para resolver un problema de congestión es descartar paquetes.
En ocasiones, los paquetes llevan alguna indicación de su grado de importancia, en cuyo
Ciencias y Técnicas Estadísticas
10
Adquisición y Tratamiento de Datos
La capa de red en Internet
caso los routers intentan descartar los menos importantes primero. Por ejemplo, sería
bastante grave si un router para resolver una situación de congestión descartara paquetes
de asfixia.
A veces el nivel de aplicación puede dar información sobre la prioridad de
descarte de los paquetes. Por ejemplo en aplicaciones isócronas (audio y vídeo en
tiempo real) suele ser preferible descartar el paquete viejo al nuevo ya que el viejo
seguramente es inútil, mientras que en transferencia de ficheros ocurre al contrario pues
el receptor necesita recibirlos todos y el más antiguo causará antes retransmisión por
timeout. En los ficheros MPEG (formato de compresión de vídeo en Internet), debido a
la técnica de compresión utilizada algunos fotogramas son completos (los denominados
fotogramas intra) y otros son diferencias respecto a los anteriores y/o posteriores
(llamados fotogramas predictivos y bidireccionales); descartar un paquete perteneciente
a un fotograma intra es más perjudicial para la calidad de la imagen que descartar uno
de un fotograma predictivo o bidireccional, ya que el defecto repercute en todos los
fotogramas que derivan de él.
En algunos casos el paquete transmitido por la red es parte de una secuencia
correspondiente a otro paquete de mayor tamaño que viaja fragmentado. En estos casos
si se descarta un paquete cualquiera de una secuencia se tendrá que reenviar todo el
grupo, por lo que al descartar uno es conveniente descartar todos los demás ya que son
tráfico inútil.
11.5 La capa de red en Internet.
Internet es un compendio de redes diferentes que comparten un protocolo, o pila
de protocolos comunes (IP a nivel de red y sobre todo TCP a nivel de transporte); cada
una de estas redes es administrada por una entidad diferente: universidades, redes
académicas nacionales, proveedores comerciales (Internet Service Providers),
operadores, multinacionales, etc. Como consecuencia de esto las políticas de uso son
muy variadas.
La red Internet tiene como protocolo principal al protocolo IP pero dentro de ella
encontramos otros auxiliares que se emplearán para determinadas funciones que debe
realizar esta capa. Técnicamente a nivel de red la Internet puede definirse como un
conjunto de redes o sistemas autónomos conectados entre sí que utilizan el protocolo de
red IP.
IP es una red de datagramas, no orientada a conexión, con calidad de servicio
“best effort”, es decir, no hay calidad de servicio; no se garantiza la entrega de los
paquetes ya que en momentos de congestión éstos pueden ser descartados sin previo
aviso por los routers que se encuentren en el trayecto.
11.6 El protocolo IP.
Toda información en una red IP ha de viajar en datagramas IP. Esto incluye
tanto las TPDUs (Transport Protocol Data Units) de TCP y UDP, como cualquier
Ciencias y Técnicas Estadísticas
11
Adquisición y Tratamiento de Datos
La capa de red en Internet
información de routing que se intercambie en la red (paquetes ECHO, HELLO,
PRUNE, de asfixia, etc.).
El datagrama tiene dos partes: cabecera y texto; la cabecera tiene una parte fija
de 20 bytes y una opcional de entre 0 y 40 bytes (siempre múltiplo de 4). La estructura
de la cabecera es la que se muestra en la figura 11.6.1.
0
4
Versión
8
IHL
16
19
31
Tipo de servicio
Identificación
Tiempo de vida
Longitud total
Flags
Protocolo
Desplazamiento del fragmento
Suma de comprobación de la cabecera
Dirección de origen
Dirección de destino
Opciones IP (0 o más palabras)
Datos (Opcional)
Figura 11.6.1: Campos del Datagrama IP.
El campo versión permite que coexistan en la misma red sin ambigüedad
paquetes de distintas versiones; la versión actualmente utilizada de IP (que corresponde
a la estructura de datagrama que estamos estudiando) es la 4. Actualmente está en fase
de desarrollo e introducción una nueva versión (la versión 6) con una estructura de
datagrama diferente.
El campo IHL especifica la longitud de la cabecera, en palabras de 32 bits, ya
que ésta puede variar debido a la presencia de campos opcionales. Se especifica en
palabras de 32 bits. La longitud mínima es 5 y la máxima 15, que equivale a 40 bytes de
información opcional. La longitud de la cabecera siempre ha de ser un número entero de
palabras de 32 bits, por lo que si la longitud de los campos opcionales no es un múltiplo
exacto de 32 bits se utiliza un campo de relleno al final de la cabecera.
El campo tipo de servicio tiene la siguiente estructura:
Subcampo
Longitud (bits)
Precedencia (o prioridad)
3
TOS (Type Of Service)
4
Reservado
1
Figura 11.6.2: Estructura del campo “Tipo de servicio”.
La precedencia permiten especificar una prioridad entre 0 y 7 para cada
datagrama, pudiendo así marcar los paquetes normales con prioridad 0 y los importantes
(por ejemplo paquetes de asfixia) con prioridad 7. La prioridad actúa alterando el orden
de los paquetes en cola en los routers, pero no modifica la ruta de éstos. Dada la actual
abundancia de ordenadores personales y estaciones de trabajo gestionadas por el usuario
final, muchos equipos ignoran este campo y cuando hacen uso de él es únicamente para
datagramas transmitidos entre routers, que se supone que están libres de esta sospecha.
Los cuatro bits siguientes actúan como flags denominados D, T, R y C respectivamente.
El primero indica que se desea un servicio de bajo retardo (D=Delay); el segundo que se
quiere elevado rendimiento (T=Throughput), el tercero que se quiere una elevada
Ciencias y Técnicas Estadísticas
12
Adquisición y Tratamiento de Datos
La capa de red en Internet
fiabilidad (R=Reliability), y el cuarto que se quiere un bajo costo (C=Cost). Las
combinaciones válidas del subcampo TOS son las siguientes:
Valor TOS
Descripción
0000
Valor por defecto
0001
Mínimo costo
0010
Máxima fiabilidad
0100
Máximo rendimiento
1000
Mínimo retardo
1111
Máxima seguridad
Figura 11.6.3: Combinaciones válidas del campo TOS.
Para cada aplicación existe un valor de TOS recomendado. Por ejemplo, para
telnet se recomienda 1000 (mínimo retardo), para FTP 0100 (máximo rendimiento) y
para NNTP (news) 0001 (mínimo costo).
Algunos routers utilizan el subcampo TOS para encaminar los paquetes por la
ruta óptima en función del valor especificado (podrían tener una ruta diferente según se
desee mínimo retardo o mínimo costo, por ejemplo); también pueden utilizar el valor
del campo TOS para tomar decisiones sobre que paquetes descartar en situaciones de
congestión (por ejemplo descartar antes un paquete con mínimo costo que uno con
máxima fiabilidad). Algunos routers simplemente ignoran este subcampo.
Protocolo a nivel de enlace
MTU(bytes)
PPP (valor por defecto)
1500
PPP (bajo retardo)
296
SLIP
1006 (límite original)
X.25
1600 (varía según las redes)
Frame relay
Al menos 1600 normalmente
SMDS
9235
Ethernet versión 2
1500
IEEE 802.3/802.2
1492
IEEE 802.4/802.2
8166
Token Ring IBM 16 Mbps
17914 máximo
IEEE 802.5/802.2 4 Mbps
4464 máximo
FDI
4352
Hyperchannel
65535
ATM
9180
Figura 11.6.4: Valor de MTU para los protocolos más comunes a nivel de enlace.
El campo longitud total especifica la longitud del datagrama completo (cabecera
incluida) en bytes. Su tamaño se especifica en un campo de dos bytes, por lo que su
valor máximo es de 65535 bytes, pero muy pocas redes admiten este valor.
Normalmente el nivel de enlace no fragmenta, por lo que el nivel de red adapta el
tamaño de cada paquete para que viaje en una trama; con lo que en la práctica el tamaño
máximo de paquete viene determinado por el tamaño máximo de trama característico de
la red utilizada. Este tamaño máximo de paquete se conoce como MTU (Maximum
Transfer Unit). En la tabla 11.6.4 se dan algunos ejemplos de valores de MTU
característicos de las redes más habituales.
Ciencias y Técnicas Estadísticas
13
Adquisición y Tratamiento de Datos
La capa de red en Internet
Es bastante normal utilizar 1500 como valor de MTU. Cualquier red debe
soportar como mínimo un MTU de 68 bytes.
El campo identificación lo usa el emisor para marcar en origen cada datagrama
emitido, y permite al receptor reconocer las partes correspondientes en caso de que se
haya producido fragmentación por el camino (dado que se pueden tener que atravesar
varias redes puede ocurrir que ya estando el datagrama de camino se encuentre una red
con un tamaño menor de MTU, por lo que el router de turno deberá fragmentar el
datagrama).
Dentro de los flags el bit más significativo está reservado. El siguiente bit, el bit
DF (Don't Fragment), cuando está a 1 indica a los routers que no fragmenten el paquete,
ya que el receptor no está capacitado para reensamblarlo. Por ejemplo, si un ordenador
arranca su sistema operativo a través de la red solicitará que el ejecutable
correspondiente se le envíe desde algún servidor a través de la red como un único
datagrama (ya que en ese estado él aun no está capacitado para reensamblar
datagramas). Si un datagrama con el bit DF puesto no puede pasar por una red el router
lo rechazará con un mensaje de error al emisor. Existe una técnica para averiguar el
MTU de una ruta (denominada “path MTU discovery”) que consiste en enviar un
datagrama grande con el bit DF puesto al destino deseado; si se recibe un mensaje de
error se envía otro mas pequeño, hasta que el emisor averigua a base de tanteos cual es
el valor de MTU de la ruta correspondiente, y a partir de ahí puede utilizarla para todos
los datagramas sin riesgo de que sean fragmentados en el camino (siempre y cuando la
ruta no cambie sobre la marcha).
El otro flag corresponde al bit MF (More Fragments) y puesto a 1 especifica que
este datagrama es realmente un fragmento de un datagrama mayor, y que no es el
último. Si está a 0 indica que este es el último fragmento (o bien que el datagrama
original no esta fragmentado).
El campo desplazamiento del fragmento (fragment offset) sirve para indicar, en
el caso de que el datagrama sea un fragmento de un datagrama mayor, en que posición
del datagrama mayor empieza este fragmento. Los cortes siempre se realizan en frontera
múltiplo de 8 bytes (la unidad elemental de fragmentación), por lo que este campo en
realidad cuenta los bytes de 8 en 8. Al ser su longitud de 13 bits el número máximo de
fragmentos es de 8192, que da cabida a la longitud máxima de un datagrama (8192 x 8
= 65536). Los fragmentos pueden llegar desordenados, por lo que el último fragmento
puede llegar al receptor sin que haya recibido aun todos los fragmentos; la información
fragment offset junto con longitud del último fragmento (identificado porque tiene el bit
MF a 0) le permite al receptor calcular la longitud total del datagrama original (que sería
fragment_offset*8 + longitud).
El campo tiempo de vida (TTL) permite descartar un datagrama cuando ha
pasado un tiempo excesivo viajando por la red y es presumiblemente inútil. En el diseño
original se pretendía que el valor de este campo (que inicialmente podía valer por
ejemplo 64) disminuyera en cada router en un valor igual al tiempo en segundos que el
paquete había empleado en esa parte del trayecto, restando como mínimo 1 en cualquier
caso. En la práctica medir tiempos en una red es mucho más difícil de lo que parece (los
relojes de los routers han de estar muy bien sincronizados, cosa que hoy en día no
Ciencias y Técnicas Estadísticas
14
Adquisición y Tratamiento de Datos
La capa de red en Internet
ocurre), por lo que todas las implementaciones se limitan sencillamente a restar 1 al
valor de TTL de cada paquete que pasa por ellos, sin analizar el tiempo que el paquete
ha invertido en el salto. Como de cualquier forma hoy en día es muy raro que un
paquete tarde más de un segundo en cada salto esto está aproximadamente de acuerdo
con el diseño original. El valor inicial de TTL de un paquete fija el número máximo de
saltos que podrá dar, y por tanto debería ser suficientemente grande como para que
pueda llegar a su destino. El TTL evita que por algún problema de rutas se produzcan
bucles y un datagrama pueda permanecer “flotando” indefinidamente en la red.
El campo protocolo especifica a que protocolo del nivel de transporte
corresponde el datagrama. La tabla de protocolos válidos y sus correspondientes
números son controlados por el IANA (Internet Assigned Number Authority) y se
especifican (junto con muchas otras tablas de números) en un RFC muy especial,
denominado “Assigned Numbers”, que se actualiza regularmente; el vigente
actualmente es el RFC 1700. Algunos de los posibles valores del campo protocolo son
los siguientes:
Valor
Protocolo
Descripción
0
Reservado
1
ICMP
Internet Control Message Protocol
2
IGMP
Internet Group Management Protocol
3
GGP
Gateway-to-Gateway Protocol
4
IP
IP en IP (encapsulado)
5
ST
Stream
6
TCP
Transmission Control Protocol
8
EGP
Exterior Gateway Protocol
17
UDP
User Datagram Protocol
29
ISO-TP4
ISO Transport Protocol Clase 4
38
IDRP-CMTP IDRP Control Message Transport Protocol
80
ISO-IP
ISO Internet Protocol (CLNP)
88
IGRP
Internet Gateway Routing Protocol (Cisco)
89
OSPF
Open Shortest Path First
255
Reservado
Figura 11.6.5: Ejemplo de valores y significados del campo protocolo en un
datagrama.
Obsérvese que el valor 4 está reservado al uso de IP para transportar IP, es decir
al encapsulado de un datagrama IP dentro de otro.
El campo suma de comprobación de la cabecera (checksum) sirve para detectar
errores producidos en la cabecera del datagrama; la suma de comprobación es el
complemento a uno en 16 bits de la suma complemento a uno de toda la cabecera
(incluidos los campos opcionales si los hubiera), tomada en campos de 16 bits; para el
cálculo el campo suma de comprobación se pone a sí mismo a ceros. Este campo
permite salvaguardar a la red de un router que alterara los campos de cabecera de un
datagrama, por ejemplo por un problema hardware. El campo suma de comprobación se
ha de recalcular en cada salto, ya que al menos el TTL cambia. Esto supone un serio
inconveniente desde el punto de vista de rendimiento en routers con mucho tráfico.
Ciencias y Técnicas Estadísticas
15
Adquisición y Tratamiento de Datos
La capa de red en Internet
Los campos dirección de origen y dirección de destino corresponden a
direcciones IP según el formato que veremos con posterioridad.
Los campos opcionales de la cabecera no siempre están soportados en los routers
y se utilizan muy raramente; de estos podemos destacar los siguientes:
•
Record route: Esta opción pide a cada router por el que pasa este datagrama que
anote en la cabecera su dirección, con lo que se dispone de una traza de la ruta
seguida para fines de prueba o diagnóstico de problemas (es como si el router
estampara su sello en el datagrama antes de reenviarlo). Debido a la limitación
en la longitud de la cabecera como máximo pueden registrarse 9 direcciones, lo
cual es insuficiente en algunos casos.
•
Source routing: permite al emisor especificar la ruta que debe seguir el
datagrama hasta llegar a su destino. Existen dos variantes: “strict source routing”
permite especificar la ruta exacta salto a salto, de modo que si algún paso de la
ruta no es factible por algún motivo se producirá un error. Con “loose source
routing” no es preciso detallar todos los saltos, puede haber pasos intermedios
no especificados.
•
Timestamp: esta opción actúa de manera similar a “record route”, pero además
de anotar la dirección IP de cada router atravesado se anota en otro campo de 32
bits el instante en que el datagrama pasa por dicho router. El uso de dos campos
de 32 bits acentúa aún mas el problema antes mencionado del poco espacio
disponible para grabar esta información.
De estos el más utilizado es “source routing”, y aún éste se usa poco por el
problema del espacio en la cabecera; generalmente se prefiere usar en su lugar
encapsulado IP en IP, que es más eficiente.
11.7 Direcciones IP.
Cada interfaz de red de cada nodo (ordenador o router) en una red IP se
identifica mediante una dirección única de 32 bits. Sin embargo, y dado que representar
las direcciones en binario es confuso, las direcciones IP se suelen representar por cuatro
números decimales separados por puntos, donde cada valor decimal corresponde a la
representación en decimal del valor binario de 8 bits (1 byte). Así, por ejemplo, la
dirección IP dada por 10010011100111001101111001000001 se suele representar
como 147.156.222.65.
Si un nodo dispone de varias interfaces físicas5, cada una de ellas deberá tener
necesariamente una dirección IP distinta si se desea que sea accesible para este
protocolo. Es posible además, y en algunas situaciones resulta útil, definir varias
direcciones IP asociadas a una misma interfaz física.
Las direcciones IP tienen una estructura jerárquica. Una parte de la dirección
corresponde a la red, y la otra al ordenador dentro de la red. Cuando un router recibe un
5
De forma general los routers y cualquier otro dispositivo de encaminamiento poseen más de un interfaz
físico de red.
Ciencias y Técnicas Estadísticas
16
Adquisición y Tratamiento de Datos
La capa de red en Internet
datagrama por una de sus interfaces compara la parte de red de la dirección con las
entradas contenidas en sus tablas6 y envía el datagrama por la interfaz correspondiente.
En el diseño inicial de la Internet se reservaron los ocho primeros bits para la
red, dejando los 24 restantes para el ordenador; se creía que con 254 redes habría
suficiente para una red experimental que era fruto de un proyecto de investigación del
Departamento de Defensa americano. Sin embargo, en 1980 se vio que esto resultaba
insuficiente, por lo que se reorganizó el espacio de direcciones reservando una parte
para poder definir redes más pequeñas. Con el fin de proporcionar mayor flexibilidad y
permitir diferentes tamaños se optó por dividir el rango de direcciones en tres partes
adecuadas para redes grandes, medianas y pequeñas, conocidas como redes de clase A,
B y C respectivamente:
•
Una red de clase A (que corresponde a las redes originalmente diseñadas) se
caracteriza por tener a 0 el primer bit de dirección; el campo red ocupa los 7 bits
siguientes y el campo ordenador los últimos 24 bits. Puede haber hasta 126 redes
de clase A con 16 millones de ordenadores cada una.
•
Una red de clase B tiene el primer bit a 1 y el segundo a 0; el campo red ocupa
los 14 bits siguientes, y el campo ordenador los 16 últimos bits. Puede haber
16382 redes clase B con 65534 ordenadores cada una.
•
Una red clase C tiene los primeros tres bits a 110; el campo red ocupa los
siguientes 21 bits, y el campo ordenador los 8 últimos. Puede haber hasta dos
millones de redes clase C con 254 ordenadores cada una.
Existe además direcciones (no redes) clase D cuyos primeros cuatro bits valen
1110, que se utilizan para definir grupos multicast (el grupo viene definido por los 28
bits siguientes).
Por último, la clase E, que corresponde al valor 11110 en los primeros cinco bits,
está reservada para usos futuros.
De los valores de los primeros bits de cada una de las clases antes mencionadas
se puede deducir el rango de direcciones que corresponde a cada una de ellas. Así pues,
en la práctica es inmediato saber a que clase pertenece una dirección determinada sin
más que saber el primer byte de su dirección. La figura 11.7.1 resume la información
esencial sobre los tipos de direcciones de Internet.
6
Estas entradas contienen solo la identificación de la red, y no de un ordenador particular de la red.
Ciencias y Técnicas Estadísticas
17
Adquisición y Tratamiento de Datos
0
Clase A
La capa de red en Internet
8
16
0| Red
24
31
Host
0.1.0.0 … 126.0.0.0
Clase B
10|
Red
Host
128.0.0.0 … 191.255.0.0
Clase C
110|
Red
Host
192.0.0.0 … 223.255.255.0
Clase D
1110
Dirección multicast
224.0.0.0 … 239.255.255.0
Figura 11.7.1: Clases de direcciones Internet y sus principales características.
La asignación de direcciones válidas de Internet la realizan los NICs (Network
Information Center). Al principio había un NIC para toda la Internet, pero luego se
crearon NICs regionales (por continentes); actualmente muchos países tienen un NIC
propio; en España el NIC es administrado por RedIRIS.
Existen unas reglas y convenios en cuanto a determinadas direcciones IP que es
importante conocer:
1.
La dirección 255.255.255.255 y la que posee el campo ordenador todo a 1 se
utiliza para indicar un datagrama broadcast7.
2. La dirección con el campo del ordenador todo a ceros se utiliza para indicar la
red misma y, por tanto, no identifica a ningún ordenador.
3. La dirección 0.0.0.0 identifica siempre al ordenador actual.
4. La dirección con el campo de red todo a ceros identifica siempre a un ordenador
dentro de la propia red.
5. Las redes 127.0.0.0, 128.0.0.0, 191.255.0.0, 192.0.0.0 y el rango de 240.0.0.0 en
adelante están reservados y no deben utilizarse.
6. La dirección 127.0.0.1 se utiliza para pruebas de “loopback”; todas las
implementaciones de IP devuelven a la dirección de origen los datagramas
enviados a esta dirección, sin intentar enviarlos a ninguna parte.
7. Las redes 10.0.0.0, 172.16.0.0 a 172.31.0.0, y 192.168.0.0 a 192.168.255.0 están
reservadas para “intranets” (redes privadas) por el RFC 1918, por lo que estos
números no se asignan a ninguna dirección válida en Internet y pueden utilizarse
para construir redes, por ejemplo detrás de un cortafuego, sin riesgo de entrar en
conflicto de acceso a redes válidas de la Internet.
7
Un datagrama broadcast es aquel datagrama que debe ser enviado a todos los ordenadores de una red.
Ciencias y Técnicas Estadísticas
18
Adquisición y Tratamiento de Datos
La capa de red en Internet
11.8 Subredes y superredes.
Existen determinados casos en que es necesario separar una red en subredes o
bien, unir varias redes menores en una red de mayor tamaño. Un ejemplo del primer
caso es cuando se tiene una red muy grande y desea dividirse en redes de menor
tamaño, con el fin de facilitar la localización de los ordenadores y, con ello, las tablas de
encaminamiento de los routers8; mientras que un ejemplo del segundo caso sería cuando
se necesita una red para 500 ordenadores pues, en este caso, una red de clase B tiene un
número excesivo de IPs, mientras que serían necesarias dos redes de clase C para cubrir
su demanda. Para permitir la separación o unión de redes surgió el concepto de máscara.
Podemos definir la máscara de una red como un conjunto de números binarios
que indican que bits de una dirección de red indican la red (bits con valor 1) y que bits
de la red indican el ordenador (bits con valor 0). Además, existe la restricción de que los
bits que indicaban la red deben ser los primeros y deben ser contiguos, de forma que
una máscara es un grupo de bits con valor 1 seguido de otro grupo de bits con valor 0,
teniendo una longitud de 32 bits.
Por ejemplo, son máscaras válidas las siguientes:
11111111000000000000000000000000
11111111111111110000000000000000
11111111111111111111111100000000
11111111111111111111111000000000
Mientras que no son máscaras válidas las siguientes:
11111111000000001111111100000000
00000000000000001111111111111111
Como norma general, y para no escribir las máscaras en formato binario, suelen
agruparse de 8 en 8 bits, convirtiendo ese valor en su representación decimal, y
separando los grupos mediante un punto. Así, las máscaras válidas anteriores se
escribirían como:
255.0.0.0
255.255.0.0
255.255.255.0
255.255.254.0
En la actualidad, y teniendo en cuenta el hecho de que los bits con valor 1 son
contiguos a la izquierda y el resto, hasta 32 bits, tienen valor 0, se suele emplear una
notación consistente en escribir, en decimal, el número de bits que tienen valor 1. Así,
las máscaras anteriores se representarían como 8, 16, 24 y 23, respectivamente.
El concepto de máscara puede aplicarse a cualquier red, aunque esta no sea una
subred o una superred, siendo por tanto, 255.0.0.0 la máscara de una red de clase A,
255.255.0.0 la máscara de una red de clase B y 255.255.255.0 la de una red de clase C.
8
Un ejemplo de esto lo proporciona la propia red de la UV, en la cual se ha dividido la red de clase B
147.156.0.0 en subredes de mayor o menor tamaño según su localización geográfica en los distintos
campús y edificios.
Ciencias y Técnicas Estadísticas
19
Adquisición y Tratamiento de Datos
La capa de red en Internet
Es importante resaltar que la definición de máscara implica que, en una red,
subred o superred, todos los bits que tengan valor 1 en la máscara, deben tener el mismo
valor en la identificación de la red, de forma que, por ejemplo, si tenemos la máscara
255.255.255.252, que indica una subred de 4 direcciones IP, todas esas direcciones IP
deben tener igual sus primeros 30 bits, pudiendo variar tan solo sus 2 últimos bits, por lo
que, por ejemplo, las direcciones 192.168.1.4, 192.168.1.5, 192.168.1.6 y 192.168.1.7
pueden pertenecer a la misma red, mientras que las direcciones 192.168.1.6,
192.168.1.7, 192.168.1.8 y 192.168.1.9 no9.
11.8.1 Subredes.
Supongamos que deseamos utilizar la red de clase B 172.16.0.010 para asignar a
un conjunto de ordenadores, y que dicho conjunto de ordenadores se encuentra disperso
en diferentes edificios, tal y como sucede, por ejemplo, en un campús universitario.
En esta situación, suele ser muy conveniente dividir la red de clase B en redes de
menor tamaño, pues esto nos permite, por ejemplo, separar el tráfico por edificios,
disminuyendo el flujo de información por la red y mejorando sus prestaciones.
Para ello, supongamos que deseamos dividir la red de clase B en cuatro
subredes11 iguales para los edificios Norte, Sur, Este y Oeste. Esta división se puede
realizar mediante la máscara:
11111111111111111100000000000000 = 255.255.192.0
Con lo que obtenemos cuatro subredes que vendrán identificadas por los valores
172.16.0.0, 172.16.64.0, 172.16.128.0 y 172.16.192.0.
Si ahora deseamos dividir alguna de esas subredes, por ejemplo la 172.16.64.0
por la mitad, para dividir el tráfico de red entre dos edificios del Sur, podemos realizarlo
mediante una nueva máscara que se aplicará a esa subred. Esta máscara será:
11111111111111111110000000000000 = 255.255.224.0
De forma que ahora tendremos un total de cinco subredes identificadas por los
valores 172.16.0.0, 172.16.64.0, 172.16.96.0, 172.16.128.0 y 172.16.192.0.
11.8.2 Superredes.
El concepto de superred es contrario al de subred. Mientras que en una subred
dividimos una red en redes de menor tamaño, en una superred unimos redes en una red
de mayor tamaño mediante el uso de una máscara.
9
Téngase en cuenta la representación en binario de estos valores decimales.
En los ejemplos utilizaremos direcciones pertenecientes a intranets y que por tanto no existen en
Internet, tal y como indicamos en el apartado 11.7.
11
Las divisiones solo pueden realizarse en potencias de 2, esto es, en 2, 4, 8, ..., partes iguales.
10
Ciencias y Técnicas Estadísticas
20
Adquisición y Tratamiento de Datos
La capa de red en Internet
Para ello, supongamos que tenemos necesidad de crear una red para 500
ordenadores, pero solo se nos permite utilizar dos redes de clase C, por ejemplo, las
redes 192.168.0.0 y 192.168.1.012. Entonces, podemos especificar una superred uniendo
esas dos redes mediante la máscara:
11111111111111111111111000000000 = 255.255.254.0
Que indica que tenemos la superred 192.168.0.0/23, formada por 512
direcciones de red, donde 192.168.0.0 representa a la superred, 192.168.1.255
representa el broadcast de la superred y el resto de direcciones IP pueden ser asignadas
a los ordenadores o dispositivos de red que se deseen conectar.
11.9 Configuración básica de una red.
Desarrollaremos a continuación unas sencillas explicaciones y un sencillo
ejemplo que permitan aprender a configurar redes de ordenadores muy sencillas13. Para
ello, utilizaremos siempre la red 192.168.0.0/24, correspondiente a una intranet, y
consideraremos que tenemos acceso a Internet mediante una dirección IP que
designaremos como A.B.C.D. Además, debemos introducir previamente algunos
conceptos que todavía no hemos visto.
El primero de esos conceptos necesarios es la puerta de enlace14. Una puerta de
enlace es el dispositivo de red, generalmente un router u ordenador, que nos permite
acceder desde nuestra subred a una red más amplía. Como ejemplo, supóngase que una
red es una habitación el la cual existe una puerta. Si deseamos ver a una persona que se
encuentra fuera de la habitación, debemos salir por la puerta, mientras que si tan solo
deseamos ver a una persona de la habitación no es necesario salir por la puerta. Por
último, comentar que la puerta de enlace debe pertenecer a la red en la que se encuentra
el dispositivo al que sirve como puerta de enlace, de igual forma que la puerta de
nuestro ejemplo debe pertenecer a nuestra habitación y no a otra habitación distinta.
Otro concepto que es necesario conocer es el del servidor de nombres o DNS
(Domain Name Server). El DNS no es más que un ordenador capaz de convertir los
nombres con los que nos referimos a los ordenadores, en las direcciones IP
correspondientes. Por ejemplo, cuando un usuario escribe en su navegador web el
nombre www.uv.es, ese nombre debe traducirse en la dirección IP 147.156.1.46, que
corresponde al ordenador en el que se encuentran esas páginas web.
Una vez introducidos estos conceptos, supongamos la siguiente configuración
física de una red formada por dos ordenadores (figura 11.9.1). En ella, podemos ver dos
ordenadores A y B conectados entre si mediante una intranet a un interfaz de red en
cada ordenador. Además uno de ellos, el ordenador A, tiene un segundo interfaz de red
que le permite acceder a Internet a través del mismo.
12
Téngase en cuenta que no es posible utilizar cualquiera dos redes clase C, pues estas deben ser tal que,
al aplicar la máscara, todos los bits de red sean iguales, tal y como se ha indicado con anterioridad.
13
Estas redes serán las típicas redes que un usuario particular puede tener en su domicilio.
14
La puerta de enlace es también conocida con los nombres de puerta de acceso, pasarela y gateway.
Ciencias y Técnicas Estadísticas
21
Adquisición y Tratamiento de Datos
La capa de red en Internet
A
B
Figura 11.9.1: Red formada por dos ordenadores.
La configuración de los dos ordenadores deberá permitir que ambos
ordenadores, A y B, sean capaces de comunicarse entre si y, además, que ambos puedan
acceder a Internet.
Para ello, comenzaremos asignando direcciones IP a los interfaces de la intranet.
Si recordamos que hemos escogido la red 192.68.0.0/24 para las direcciones IP de la
intranet, podemos elegir, por ejemplo, la dirección 192.168.0.1 para el interfaz de la
intranet del ordenador A y 192.168.0.2 para el interfaz del ordenador B15. Una vez
asignadas las direcciones, procederemos a asignar las máscaras, que en ambos casos son
iguales y con valor 255.255.255.0.
Una vez configuradas las direcciones IP de los interfaces de la intranet,
procederemos a configurar las direcciones IP del interfaz del ordenador A que da acceso
a Internet. Para ello, le asignaremos la dirección A.B.C.D, con la máscara adecuada
según la red en la que se encuentre dicha dirección16.
Por tanto, en este momento tenemos la siguiente configuración en los
ordenadores:
A
IP: A.B.C.D
Máscara: X.Y.Z.T
B
IP: 192.168.0.1
Máscara: 255.255.255.0
IP: 192.168.0.2
Máscara: 255.255.255.0
Figura 11.9.2: Configuración básica de la conexión de dos ordenadores.
En este momento podemos comprobar la misión fundamental que realiza la capa
de red. Para ello, supongamos que el ordenador A desea enviar información al
15
Es necesario recordar que la dirección 192.168.0.0 identifica a la red, mientras que la dirección
192.168.0.255 identifica el broadcast de la red, por lo que no pueden utilizarse para identificar un
ordenador de la red.
16
Estos valores pueden ser asignados dinámicamente por el proveedor de acceso a Internet por lo que en
esos casos no es necesario asignarlos manualmente, sino que es necesario indicar que la asignación se
realizará mediante el protocolo DHCP (Dynamic Host Configuration Protocol). Además de estos valores,
DHCP suele proveer también la dirección de la puerta de enlace y del servidor de DNS.
Ciencias y Técnicas Estadísticas
22
Adquisición y Tratamiento de Datos
La capa de red en Internet
ordenador B. En este momento, la capa de red analiza los dos interfaz del ordenador A y
determina que el ordenador B pertenece a la red del interfaz de la intranet, enviando la
información por dicho interfaz. Sin embargo, si A desea enviar la información a la red
de Internet, la capa de red decidirá enviarla por el otro interfaz que da acceso a Internet.
Sin embargo, a pesar de que en este punto los ordenadores A y B pueden
comunicarse entre sí, pudiendo, además, el ordenador A acceder a Internet y llegar a
todos los ordenadores de su red, sucede que el ordenador B no es capaz de acceder a
Internet, mientras que el ordenador A no es capaz de acceder a ordenadores fuera de su
red de Internet.
El motivo es que tanto en A como en B no se ha configurado la puerta de enlace,
de forma que la capa de red de B no conoce por donde debe enviar los datos que no
tengan como destino el ordenador A, mientras que A no conoce por donde debe enviar
los datos que deban salir de su “trozo de red Internet”.
La configuración de las puertas de enlace es sencilla. La puerta de enlace de B es
el interfaz de la intranet del ordenador A, mientras que la puerta de enlace de A con el
resto de Internet debe ser facilitada por el proveedor de acceso a Internet, por ejemplo,
A’.B’.C’.D’. Con esto, la configuración queda como
A
IP: A.B.C.D
Máscara: X.Y.Z.T
Puerta: A’.B’.C’.D’
B
IP: 192.168.0.1
Máscara: 255.255.255.0
IP: 192.168.0.2
Máscara: 255.255.255.0
Puerta: 192.168.0.1
Figura 11.9.3: Configuración con puertas de enlace de dos ordenadores.
Con esta configuración, si el ordenador B desea enviar un paquete a un
ordenador cualquiera de Internet, su capa de red observa que no pertenece a su red, por
lo que comprueba que ordenador de su red es la puerta de enlace, enviando el paquete a
la puerta de enlace para que esta lo reenvíe por el enlace adecuado. De igual forma, si A
desea enviar un paquete fuera de su “trozo de red Internet”, o bien recibe un paquete de
B con idéntico destino, procederá a enviarlo a la puerta de enlace de su interfaz de
Internet, para que la puerta de enlace proceda de forma adecuada.
Por último, solo nos queda por configurar los DNS, pues ambos ordenadores son
en este instante capaces de enviar y recibir paquetes de Internet, pero no son capaces de
convertir ningún nombre de ordenador en la dirección IP correspondiente.
Esto se resuelve mediante la asignación de las direcciones de los servidores de
DNS. Para ello, supongamos que la dirección IP del servidor de DNS que nos ha
facilitado el proveedor de Internet es A’’.B’’,C’’.D’’. Entonces, podemos configurar el
ordenador A indicando que el DNS es A’’.B’’.C’’.D’’. Sin embargo, en el ordenador B
Ciencias y Técnicas Estadísticas
23
Adquisición y Tratamiento de Datos
La capa de red en Internet
tenemos dos posibilidades. La primera implica poner como servidor de DNS la misma
dirección que en A, esto es A’’.B’’.C’’.D’’. La otra, consiste en poner como servidor de
DNS en B la dirección de la intranet de A, esto es, 192.168.0.1, pues cuando la petición
llegue al ordenador A, este verá que es una petición de DNS y, como conoce quién es el
DNS, reenvía dicha petición al DNS17.
Por tanto, la configuración final de los ordenadores puede verse en la figura
siguiente:
A
IP: A.B.C.D
Máscara: X.Y.Z.T
Puerta: A’.B’.C’.D’
DNS: A’’.B’’.C’’.D’’
B
IP: 192.168.0.1
Máscara: 255.255.255.0
IP: 192.168.0.2
Máscara: 255.255.255.0
Puerta: 192.168.0.1
DNS: 192.168.0.1
Figura 11.9.4: Configuración de red de dos ordenadores.
11.10 Ejercicios.
11.10.1 Ejercicio.
Aplicando el algoritmo de Dijkstra, calcular el camino más corto entre los nodos
A y J del siguiente grafo, que representa una red de comunicaciones, donde los valores
entre los nodos del grafo indican la distancia existente en función de la métrica.
B
G
4
6
E
1
2
5
4
3
A
2
H
C
J
3
3
2
1
F
8
1
5
2
5
1
D
I
6
17
Si el proveedor de acceso a Internet facilita los datos mediante DHCP, debe utilizarse siempre esta
segunda forma, pues no podemos asegurar que el servidor de DNS no cambie su IP en cada nueva
asignación de dirección a nuestro ordenador.
Ciencias y Técnicas Estadísticas
24
Adquisición y Tratamiento de Datos
La capa de red en Internet
11.10.2 Ejercicio.
Utilizando el algoritmo del pozal agujerado, calcular el tiempo que tardará en
transmitirse una ráfaga de 10 Mbits en 50 msegs si =10 Mbps, C=5 Mbits y M=100
Mbps y el pozal está inicialmente lleno de créditos.
11.10.3 Ejercicio
Un pozal agujereado posee los valores de =10 Mbps y M=1 Gbps. Sabemos
que si el pozal esta vacío y los créditos a la mitad de su valor máximo, que recordemos
es la capacidad total del pozal C, es capaz de enviar tráfico de red a la velocidad de 1
Gbps durante 0,01 segundos. Calcular la capacidad del pozal.
11.10.4 Ejercicio.
Queremos enviar por una red una serie de 1000 datos bajo el protocolo de red IP.
Especificar los campos longitud total, identificación, MF y desplazamiento del
fragmento si la capacidad de envió por la red es:
a) Toda la red entre origen y destino admite paquetes de 256 bytes como máximo.
b) El principio de la red admite paquetes de 512 bytes como máximo y, a partir de cierto
nodo, solo paquetes de 256 bytes como máximo.
11.10.5 Ejercicio.
Deseamos enviar 1000 bytes del ordenador 147.156.1.1 al ordenador
147.156.160.55. La red admite datagramas IP de 576 bytes. Escribir los datagramas que
se enviarán, especificando toda la información posible.
11.10.6 Ejercicio.
Nos han asignado una red de clase C para dar soporte a un edificio de 4 plantas,
de forma que queremos asignar 64 ordenadores a la 1ª planta, 32 a la 2ª y 3ª plantas y
128 a la 4ª planta. ¿Cuales son la direcciones IP y las mascaras de subred de cada una de
las plantas?.
11.10.7 Ejercicio.
Deseamos crear una superred de 1024 direcciones y nos permiten elegir
cualquier subred en el rango XXX.YYY.14.0 y XXX.YYY.21.0. ¿Cuál es el rango a
elegir?.
Ciencias y Técnicas Estadísticas
25
Descargar