|
Categorias
|
El protocolo IP
Indice
El
Datagrama
IP
Formato
del Datagrama
IP
Fragmentación
Formato
del Datagrama
IP (Cont.)
Enrutamiento IP
Encaminamiento
con Salto al
Siguiente.
Manejo
de Datagramas Entrantes.
Direccionamiento sin Clase
CIDR
Enrutamiento
Inter – Dominio Sin Clases
(Classless Inter – Domain
Routing)
ICMP:
Protocolo de
Mensajes de
Control de
Interred (Internet
Control Message
Protocol)
Formato
del Mensaje
ICMP
Mensajes
Solicitud de
Eco y
Respuesta al
Eco
Mensaje
Destino Inaccesible.
Mensaje
de Acallamiento
de Origen
Mensaje
Redireccionar
Mensaje
Tiempo
Excedido
Mensaje
Problema de
Parámetros
Mensaje
Solicitud de
Timestamp y
Respuesta de
Timestamp
Mensaje Solicitud de
Mascara de
Subred y
Respuesta de
Mascara de
Subred
Introduccion El
protocolo IP
es el
software que
implementa el
mecanismo de
entrega de
paquetes sin
conexión y
no confiable (técnica
del mejor
esfuerzo). El protocolo IP
cubre tres
aspectos importantes: 1. Define la unidad básica para la transferencia de datos en una interred, especificando el formato exacto de un Datagrama IP. 2.
Realiza las funciones
de enrutamiento. 3.
Define las reglas
para que
los Host
y Routers
procesen paquetes,
los descarten
o generen
mensajes de
error. El
Datagrama IP El
esquema de
envío de
IP es similar
al que
se emplea en
la capa
Acceso a
red. En
esta ultima
se envían
Tramas formadas
por un
Encabezado y
los Datos.
En el
Encabezado se
incluye la
dirección física
del origen
y del destino. En
el caso
de IP se envían
Datagramas,
estos también
incluyen un
Encabezado y
Datos, pero
las direcciones
empleadas son
Direcciones
IP.
Los
Datagramas IP
están formados
por Palabras
de 32
bits. Cada
Datagrama tiene
un mínimo
(y tamaño
más frecuente)
de cinco
palabras y
un máximo
de quince.
·
Ver:
Versión de
IP que se emplea
para construir
el Datagrama.
Se requiere
para que
quien lo
reciba lo
interprete correctamente.
La actual
versión IP
es la
4. ·
Hlen:
Tamaño
de la
cabecera en
palabras. ·
TOS:
Tipo de servicio.
La gran
mayoría de
los Host
y Routers
ignoran este
campo. Su
estructura es:
La
prioridad (0 = Normal,
7 = Control de
red) permite
implementar algoritmos
de control
de congestión
más eficientes.
Los tipos
D, T
y R solicitan un
tipo de
transporte dado:
D = Procesamiento con
retardos cortos,
T = Alto Desempeño
y R = Alta
confiabilidad. Nótese que
estos bits
son solo
“sugerencias”, no
es obligatorio
para la
red cumplirlo. ·
Longitud
Total:
Mide en
bytes la
longitud de
doto el
Datagrama. Permite
calcular el
tamaño del
campo de
datos: Datos = Longitud
Total – 4 * Hlen. Antes
de continuar
con la segunda palabra
del Datagrama
IP, hace
falta introducir
conceptos relacionados
con la
fragmentación. Fragmentación
En
primer lugar,
De qué tamaño es
un Datagrama?.
El tamaño
para un
Datagrama debe
ser tal
que permita
la encapsulación,
esto es,
enviar un
Datagrama completo
en una
trama física.
El problema
está en
que el Datagrama
debe transitar
por diferentes
redes físicas,
con diferentes
tecnologías y
diferentes capacidades
de transferencia.
A la
capacidad máxima
de transferencia
de datos
de una red física
se le
llama MTU
(el MTU
de ethernet
es 1500
bytes por
trama, la
de FDDI es
4497 bytes
por trama).
Cuando un
Datagrama pasa
de una
red a otra con
un MTU
menor a
su tamaño
es necesaria
la fragmentación.
A las
diferentes partes
de un Datagrama se
les llama fragmento. Al
proceso de
reconstrucción del Datagrama
a partir
de sus
fragmentos se
le llama
Reensamblado
de fragmentos.
El control
de la fragmentación de
un Datagrama
IP se
realiza con
los campos
de la
segunda palabra
de su
cabecera: ·
Identificación:
Numero de
16 bits
que identifica
al Datagrama,
que permite
implementar números
de secuencias
y que permite reconocer
los diferentes
fragmentos de
un mismo
Datagrama, pues
todos ellos
comparten este
numero. ·
Banderas:
Un campo de
tres bits
donde el
primero está
reservado. El
segundo, llamado
bit de No - Fragmentación significa:
0 = Puede fragmentarse el Datagrama
o 1 = No
puede fragmentarse el
Datagrama. El
tercer bit
es llamado
Más – Fragmentos y significa:
0 = Unico fragmento
o Ultimo
fragmento, 1 = aun
hay más
fragmentos. Cuando
hay un 0 en más
– fragmentos, debe evaluarse
el campo
desp. De
Fragmento: si
este es
cero, el
Datagrama no
esta fragmentado,
si es
diferente de
cero, el
Datagrama es
un ultimo
fragmento. ·
Desp.
De Fragmento:
A un
trozo de
datos se
le llama Bloque
de Fragmento.
Este campo
indica el
tamaño del
desplazamiento en
bloques de
fragmento con
respecto al
Datagrama original,
empezando por
el cero. Para
finalizar con
el tema de
fragmentación, hay que
mencionar el
Plazo de Reensamblado,
que es
un time out
que el
Host destino
establece como
máximo para
esperar por
todos los
fragmentos de
un Datagrama. Si
se vence
y aun
no llegan
TODOS, entonces
se descartan
los que
ya han
llegado y
se solicita
el reenvío
del Datagrama
completo. Formato
del Datagrama
IP (Cont.) ·
TTL:
Tiempo de
Vida del
Datagrama, especifica
el numero
de segundos
que se permite al
Datagrama circular
por la
red antes
de ser
descartado. ·
Protocolo:
Especifica que
protocolo de
alto nivel
se empleó
para construir
el mensaje
transportado en el
campo datos
de Datagrama
IP. Algunos
valores posibles
son: 1 = ICMP,
6 = TCP, 17 = UDP,
88 = IGRP (Protocolo
de Enrutamiento de Pasarela
Interior de
CISCO). ·
Checksum:
Es un
campo de
16 bits
que se
calcula haciendo
el complemento
a uno
de cada palabra
de 16
bits del
encabezado, sumándolas
y haciendo
su complemento
a uno. Esta suma
hay que
recalcularla en
cada nodo
intermedio debido
a cambios
en el TTL o
por fragmentación. ·
Dirección
IP de
la Fuente: ·
Dirección
IP del
Destino: ·
Opciones
IP:
Existen hasta
40 bytes
extra en
la cabecera
del Datagrama
IP que pueden llevar
una o
más opciones. Su
uso es
bastante raro. §
Uso de Ruta
Estricta (Camino
Obligatorio) §
Ruta de Origen
Desconectada (Nodos Obligatorios) §
Crear registro de
Ruta §
Marcas de Tiempo §
Seguridad
Básica del
Departamento de
Defensa §
Seguridad
Extendida del
Departamento de
Defensa Enrutamiento IP Enrutar es el
proceso de
selección de
un camino
para el
envío de
paquetes. La
computadora que
hace esto
es llamada
Router. En general se
puede dividir
el enrutamiento en Entrega Directa y
Entrega
Indirecta. La
Entrega Directa
es la
transmisión de
un Datagrama
de una
maquina a
otra dentro
de la
misma red
física. La
Entrega Indirecta
ocurre cuando
el destino
no esta
en la red local,
lo que
obliga al
Host a enviar el
Datagrama a
algún Router
intermedio. Es
necesario el
uso de mascaras
de subred
para saber
si el Host destino
de un
Datagrama esta
o no dentro de
la misma
red física. Encaminamiento
con Salto
al Siguiente.
La forma más
común de
enrutamiento requiere
el uso de una
Tabla
de Enrutamiento
IP, presente
tanto en
los Host
como en
los Routers. Estas
tablas no
pueden tener
información sobre
cada posible
destino, de
hecho, esto
no es
deseable. En
ves de ello se
aprovecha el
esquema de
direcionamiento IP para
ocultar detalles
acerca de los
Host individuales,
además, las
tablas no
contienen rutas
completas, sino
solos la
dirección del
siguiente paso
en esa
ruta. En general una
tabla de
encaminamiento IP
tiene pares
(Destino, Router),
donde destino
es la dirección IP
de un
destino particular
y Router
la dirección
del siguiente
Router en
el camino
hacia destino.
Nótese que
Router debe
ser accesible
directamente desde
la maquina
actual. Este tipo de
encaminamiento trae varias
consecuencias, consecuencia directa
de su
naturaleza estática: 1.
Todo trafico
hacia una
red particular
toma el
mismo camino,
desaprovechando caminos alternativos
y el tipo
de trafico. 2.
Solo el
Router con
conexión directa
al destino
sabe si
este existe
o esta
activo. 3.
Es necesario
que los
Routers cooperen
para hacer
posible la
comunicación bidireccional. Algoritmo
de Enrutamiento IP Ruta
Datagrama(Datagrama)
{
Extrae
de la Cabecera de
Datagrama la
dirección de
destino D;
Extrae
de D el prefijo
de Red
N;
Si
N corresponde a
cualquier dirección
directamente conectada
Entonces
Envía
el Datagrama
a D
sobre la
Red N;
Sino
Si
en la tabla hay
una ruta
especifica para
D Entonces
Envía
Datagrama al
salto siguiente especificado;
Sino
Si
En la tabla hay
una ruta
para la
red N Entonces
Envía
Datagrama al
salto siguiente
especificado;
Sino
Si
En la
tabla hay
una ruta
por defecto
Entonces
Envía
el Datagrama
a la
dirección por
defecto;
Sino
Declarar
Fallo de
Enrutamiento;
Fsi
Fsi
Fsi
Fsi } Manejo
de Datagramas
Entrantes.
Cuando un Datagrama
llega a
un Host, el
software de
red lo entrega
a IP.
IP verifica la
dirección de
destino y
si esta
concuerda con
la de
la maquina local,
entonces acepta
el Datagrama
y lo entrega a
las capas
superiores. De
no coincidir
la dirección
de destino,
el Datagrama
es descartado. Por otra parte, un
Router que
reciba un
Datagrama compara
la dirección
de destino
con la suya propia.
Si coinciden,
el Datagrama
pasa a las capas
superiores, sino,
se le
aplica el
algoritmo de
encaminamiento y
se reenvía
el Datagrama. Direccionamiento
sin Clase
Durante la introducción
a TCP/IP
(Juan Carlos
Guevara), se
explicaba como
mediante el
empleo de
Mascaras de
subred, se
lograba convertir
una única
red (generalmente una Clase
B) en
múltiples redes
lógicas interconectadas
y administradas
por la
organización propietaria.
El problema
se presenta
cuando el
crecimiento explosivo
de las
redes locales
produce el fenómeno
ROADS (Running
Out of Address Space),
que consiste
simplemente en
el agotamiento
del espacio
de direcciones
útil, causado
por la
gran demanda
de las direcciones Clase
B, de
las cuales solo
hay 16.384,
mientras que
las Clases
C permanecían
sin Asignar
(pues aunque
hay 2.097.152
de ellas,
nadie las
quiere por
ser muy
pequeñas). Para enfrentar este
problema se
desarrollo el
esquema de
Direcciones sin
Clase, que
consiste en
asignar a
una misma organización
un bloque
continuo de
direcciones de
Clase C.
De esta manera,
una organización
que requiera
conectar a Internet
un numero
moderado de
Hosts (digamos
3.800) puede
recibir un
bloque de
16 redes
continuas de
Clase C
(por ejemplo,
de la
red Clase
C 199.40.72.0
a la
199.40.87.0), con
lo cual
dispone de
4.096 direcciones
IP validas
para administrar. CIDR
Enrutamiento Inter –
Dominio Sin Clases
(Classless Inter – Domain
Routing)
El esquema de
direcciones sin clase genera
el problema
de aumentar
la información
que debe
incluirse en
las tablas de
enrutamiento. En el
caso del
ejemplo, se
tendría que
incluir 16
nuevas entradas
en cada
tabla de
enrutamiento de
cada Host
y Router.
CIDR resuelve
el problema
al incluir
en las
tablas información
acerca del
tamaño de
los bloques
y el
numero de
bloques, así,
en las
tablas de
enrutamiento IP
se tienen
pares (Destino,
Router), donde
destino no
es una dirección
de Host
o Red tradicional,
sino que
incluye información
acerca del
numero de
redes que
incluye el
bloque (en
nuestro ejemplo,
16) y el tamaño
de cada
una de
esas redes
(en el
ejemplo, son
Clases C,
256 direcciones
cada una). El Direccionamiento sin
clase modifica
la estructura
de una dirección IP,
de esta
manera:
Así,
CIDR debe
incluir en
las tablas
de enrutamiento
cual es
la primera
red que
compone el
bloque, cuantos
bits se
emplean como
Prefijo de
Red y
la mascara de
subred que
se emplea. En
nuestro ejemplo,
las tablas
de enrutamiento
IP contendrían
esta información: 199.40.72.0/20
255.255.240.0 Refiriéndose
a un
bloque que
se inicia
con la
red 199.40.72.0 y
que tiene
20 bits
en el prefijo de
red. La
mascara 255.255.240.0 (11111111.11111111.11110000.00000000)
nos indica
que se
están usando 4
bits extra
(los que
se han resaltado)
para identificar
a las
redes que
componen al
bloque. Nótese
que cuatro
bits permites
agrupar precisamente 16 redes
Clase C. Un
aspecto importante
que hay
que subrayar
es que
en ningún momento
cambia el
algoritmo básico
de enrutamiento
IP, lo
que cambia es
el contenido
de las
tablas. Además,
las nuevas
tablas contienen
información resumida,
por lo
que buscar una
dirección destino
en la
tabla se
hace de
otra manera,
pero el
algoritmo permanece
inalterado. El problema de
buscar direcciones
de destino
en una tabla, consiste
en que
cualquier dirección
cuya mascara
de destino
tenga menos
bits, incluye
a la
que tiene mas
bits. Con
esto quiero
decir que
una mascara
de subred
como 255.255.0.0
(11111111.11111111.00000000.00000000,
es decir,
16 bits
de prefijo
de red)
incluye dentro
de si a la
mascaras de
subred 255.255.128.0 (11111111.11111111.10000000.00000000, 17 bits
de prefijo
de red)
y esta a su
ves incluye
a la
mascara 255.255.192.0
(11111111.11111111.11000000.00000000)
y en
general, entre
menos bits
tiene el
prefijo de
red, mas
direcciones Host
abarca. Por
esta razón
cuando se
explora la
tabla de
enrutamiento IP
en busca
de una
dirección de
destino, se
hace una
búsqueda que
inicia con
las mascaras
de más
bits y termina en
la de
menos bits.
Es decir,
se inicia
con mascaras
como 255.255.255.255
(todo en
uno) y
se continua
con la
255.255.255.254 (31
unos y un cero)
y así
sucesivamente. Esto
quiere decir
que tendrían
que hacerse
32 recorridos
secuenciales a la
tabla, lo
cual es
muy ineficiente
en cuanto
a tiempo,
pues además
de ser
un procedimiento demorado,
se sabe
ya que direcciones normales
de Clase
B (255.255.0.0) requieren 16
barridos a
la tabla, además, hacen falta
32 barridos
para notar
que no
hay una entrada
en la
tabla para
esas dirección.
Por esta razón
se emplean
otros métodos
para hacer
estas búsquedas
en las tablas de
enrutamiento IP. Un
esquema muy
popular emplea
un Arbol
Binario, en
el cual cada
bit representa
una nueva
rama en
el árbol.
Así, en
nuestro ejemplo,
podrían dividirse
las direcciones
asignadas a
la organización
(4.096) en
subredes de
esta forma:
dos subredes
de 1.024
direcciones cada
una, tres
de 512 y dos
de 256
direcciones. De
esta forma,
el árbol
resultante tendría
esta forma:
ICMP:
Protocolo de
Mensajes de
Control de
Interred (Internet
Control Message
Protocol) Si un Router
no puede
enrutar o
entregar un
Datagrama, o
si detecta una
situación anómala
que afecta
su capacidad
de hacerlo
(por ejemplo,
la congestión), debe informar
a la
fuente original
para que
evite o
solucione el
problema. ICMP es un
mecanismo para
realizar esta
operación. Es
considerado como
una parte
obligatoria de
IP y
debe ser incluido
en todas
sus implementaciones. ICMP comunica
la capa
de Interred
de una maquina con
la misma
capa en
otra maquina.
ICMP es
un protocolo de reporte
de errores
(no los
corrige), además,
ICMP solo
puede informar
del error
a la fuente del
Datagrama, es
esta maquina
la que debe implementar
mecanismos para
enfrentar el
problema.
Los mensajes de ICMP requieren doble encapsulacion: Los mensajes ICMP viajan empaquetados en Datagramas IP. Aun así, no se considera a ICMP un protocolo de nivel superior a IP. Formato
del Mensaje
ICMP
Aunque cada tipo
de mensaje
tiene su
propio formato,
todos ellos
comparten los
primeros tres
campos: TIPO
(8 bits),
CODIGO (8
bits) y
CHECKSUM (16
bits). El campo TIPO
identifica al
tipo de
mensaje ICMP
y determina
su formato.
Puede tener
alguno de
estos valores: ·
0
: Respuesta
de Eco (Echo Replay) ·
3
: Destino
Inaccesible (Host
Unreachable) ·
4
: Acallamiento de Origen
(Source Quench) ·
5
: Redireccionar (Redirect) ·
8
: Solicitud
de Eco (Echo Request) ·
11 : Tiempo
Excedido ·
12 : Problema
de Parámetros ·
13 : Solicitud
de Timestamp ·
14 : Respuesta
de Timestamp ·
17 : Solicitud
de mascara
de subred ·
18 : Respuesta
de mascara
de subred Mensajes
Solicitud de Eco
y Respuesta
al Eco
Este es el
tipo de
mensaje que
envía la
maquina cuando
se emplea
el comando
ping. Solicitud
de Eco
pide a la maquina
destino que
responda con
una Respuesta
de Eco
con un
numero de
secuencia apropiado.
Mensaje
Destino Inaccesible.
Es el mensaje
empleado para
reportar que
no es posible entregar
un Datagrama.
El campo
CODIGO describe
mejor el
problema: ·
0
: Red
Inaccesible ·
1
: Host
Inaccesible ·
2
: Protocolo Inaccesible ·
3
: Puerto
Inaccesible ·
4
: Necesita
Fragmentación ·
5
: Falla
en la Ruta
de Origen ·
6
: Red
de Destino
Desconocida ·
7
: Host
Destino Desconocido ·
8
: Host
de Origen
Aislado ·
9
: Comunicación con Red
Destino Administrativamente
Prohibida ·
10 :
Comunicación con
Host Destino
Administrativamente Prohibida ·
11 :
Red Inaccesible
por el tipo de servicio ·
12 :
Host Inaccesible
por el tipo de servicio
Los errores de
red inaccesible
por lo
general implican
fallas de
enrutamiento. Debido
a que el mensaje
ICMP contiene
la cabecera
del Datagrama
que lo
produjo (en
el campo
de datos),
el origen
sabrá cual
destino es
inaccesible. Mensaje
de Acallamiento de Origen
Debido a que
IP funciona
sin conexión
un Router no
puede reservar memoria o
recursos de
comunicación antes
de recibir
los Datagramas.
En consecuencia
los Routers
pueden verse
repentinamente saturados
por el trafico.
A esta
situación se
le llama
congestión. El congestionamiento se
da por
que un
Host de
alta velocidad
genera Datagramas
mas rápido
de lo
que el Router
puede manejar
o porque
muchos Host
envían Datagrama
a la
misma dirección
al mismo
tiempo. Cuando los Datagramas
llegan mas
rápido de
lo que un Router
puede manejarlos,
este los
coloca en
un buffer.
Si los
Datagramas son
parte de
una ráfaga pequeña,
esto soluciona
el problema,
pero si
continúan llegando
Datagramas se
saturan los
buffers y
el Router
debe descartar
los nuevos
Datagramas. Es
entonces cuando
el Router
genera un
mensaje ICMP
de Acallamiento de
Origen solicitando
a este reducir la tasa
de envío
de Datagramas.
No existe
un mensaje
ICMP para
revertir esta
solicitud, en
general poco
después de
bajar la
tasa de
envío, los
Hosts la
aumentan progresivamente hasta recibir
otro mensaje
de Acallamiento de Origen.
El objetivo de
este mensaje
era aliviar
el problema
de la
congestión, pero
no tuvo
éxito. Se
dejo al implementador decidir sobre
cuando enviar
estos mensajes,
por lo que cada
fabricante emplea
su política
favorita sin
que ninguna
solucione el
problema del
todo. Por
otra parte,
ICMP informa
al Host
de origen
que su Datagrama ha
sido descartado,
pero puede
que este
Host no
sea el causante
de la
congestión. Además,
Como responder
al mensaje
ICMP?. Documentos
como Requisitos
para los
Routers (RFC 1812) estipulan
que NO
se deben enviar
mensajes de
Acallamiento de
Origen. Se
esta trabajando
en mecanismos
mas eficientes. Mensaje
Redireccionar
Se asume que
los Routers conocen
rutas correctas.
Los Host
comienzan con
información mínima
de enrutamiento
y aprenden nuevas
rutas de
los Routers.
En caso
de que
un Host
utilice una
ruta no
optima, el
Router que
lo detecta envía
un mensaje
ICMP Redireccionar solicitándole que
actualice su
tabla de
enrutamiento IP.
Mensaje
Tiempo Excedido
Debido a que
los Routers
solo deciden
sobre el
próximo “Salto”
usando tablas
locales, errores
en esas
tablas pueden
generar “ciclos
de enrutamiento”
para algún
destino. Esto provoca
que los
Datagramas sean
descartados por
vencimiento de
su TTL. Siempre
que un
Router descarte
un Datagrama
ya sea por
vencimiento de
TTL o por
vencimiento del
Tiempo de
Reensamblado, envía
un mensaje
de Tiempo
Excedido a
la fuente.
CODIGO
= 0: Descartado
por vencimiento
de TTL CODIGO
= 1: Descartado
por vencimiento
de Tiempo
de Reensamblado. Mensaje
Problema de
Parámetros
Cuando un Router
o un
Host encuentra
un problema que
no ha
sido cubierto
con los
mensajes ICMP
anteriores, envía
este mensaje.
El campo indicador
apunta al
campo dentro
del encabezado
IP que
generó el
problema. Mensaje
Solicitud de
Timestamp y
Respuesta de
Timestamp
Una técnica sencilla
provista por
TCP/IP para
sincronizar relojes
emplea ICMP
para obtener
la hora de
la otra
maquina. Una
maquina envía
a otra
una solicitud
de Timestamp,
solicitándole que informe
su valor
actual para
la hora del
día. La
otra maquina
envía una
respuesta de
Timestamp con
esa información.
Mensaje
Solicitud de
Mascara de
Subred y
Respuesta de
Mascara de
Subred
Para aprender la
mascara de
subred utilizada
por la red local,
una maquina puede
enviar un
mensaje ICMP
Solicitud de
Mascara de
Subred a
un Router
y esperar
su Respuesta.
Si la
maquina no
conoce la
dirección del
Router, puede
enviar este
mensaje por
difusión.
Autores:
Juan Norton
Carlos
Gimenez
Articulos relacionados:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||


