IP: Internet Protocol

\includegraphics[height=0.7cm]{gsyc2}


Introducción

IP es un protocolo de Nivel de Red que ofrece un servicio de entrega de mensajes (datagramas):

Dentro de un datagrama IP se encapsula una unidad de datos de uno de los siguientes protocolos:

ICMP
Internet Control Message Protocol
IGMP
Internet Group Management Protocol
TCP
Transmission Control Protocol
UDP
User Datagram Protocol



\includegraphics[height=0.7cm]{gsyc2}


Datagramas IP

\includegraphics[height=6cm]{figs/ip-1}



\includegraphics[height=0.7cm]{gsyc2}


versión
Actualmente versión 4. La siguiente versión es IPv6.
longitud cabecera
Número de palabras de 32 bits que ocupa la cabera. Normalemente es 5 (20 bytes), cuando no hay opciones
TOS
Se usan sólo 4 bits para indicar tipo de servicio a ofrecer:



\includegraphics[height=0.7cm]{gsyc2}


longitud total
En bytes. Tamaño máximo: 65535 bytes. Normalmente es menor de 576 bytes. El nivel de enlace puede fragmentar datagramas IP grandes.
identificación
Identifica de manera única cada datagrama enviado por una máquina. Normalmente se incrementa en 1 para cada datagrama que se envía.
TTL
Indica el número máximo de encaminadores que el datagrama puede atravesar. Normalmente se coloca a 32 ó 64. Cada encaminador lo decrementa, y si alcanza 0 se descarta el datagrama, enviándose al originador del datagrama un mensaje ICMP.



\includegraphics[height=0.7cm]{gsyc2}


protocolo
Indica si en el campo de datos va un paquete de ICMP, IGMP, TCP o UDP.
checksum
Calculado únicamente sobre la cabera del datagrama.

direcciones origen y destino
Valores de 32 bits.
opciones
Información opcional. No todas las máquinas y encaminadores las soportan. El campo de opciones se rellena con ceros por la derecha para asegurar un múltiplo de 32 bits. Ejemplos de opciones:



\includegraphics[height=0.7cm]{gsyc2}


Direcciones IP

Cada interfaz físico conectado a la Internet tiene asignada una dirección IP que resulta única en toda la red.

Los 32 bits se suelen expresar en «notación decimal puntuada»: 212.128.4.4

El rango de direcciones se divide en 5 clases:

Clase Rango
A 0.0.0.0 a 127.255.255.255
B 128.0.0.0 a 191.255.255.255
C 192.0.0.0 a 223.255.255.255
D 224.0.0.0 a 239.255.255.255
E 240.0.0.0 a 247.255.255.255



\includegraphics[height=0.7cm]{gsyc2}


Los primeros bits de una dirección indican cuál es su clase.

En cada clase, es distinto el número de bits de red y el de bits de máquina.



\includegraphics[width=\textwidth]{figs/ip-2}



\includegraphics[height=0.7cm]{gsyc2}


Tipos de direcciones IP

unicast
Representan a una sola máquina
multicast
Representan a un grupo de máquinas
broadcast
Representan a todas las máquinas de una subred



\includegraphics[height=0.7cm]{gsyc2}


¿Quién asigna direcciones IP?

Tres organismos regionales: ARIN (América), RIPE (Europa y África) y APIC (Asia).

RIPE delega en organismos regionales (normalmente por países).

En España, el organismo es Red.es, Entidad Pública Empresarial adscrita al Ministerio de Ciencia y Tecnología.

Una organización adquiere una (o más) direcciones de clase, y el administrador local de la organización reparte la dirección de clase entre todas sus máquinas.



\includegraphics[height=0.7cm]{gsyc2}


Subredes

En ocasiones, por razones organizativas o topológicas, se utilizan algunos bits de máquina como bits de subred.

Sobre todo con direcciones de clases A y B.

Dada una dirección de red otorgada a una organización, el administrador decidirá si utilizará subredes, y el número de bits de máquina que utilizará para indicar la subred.



\includegraphics[height=0.7cm]{gsyc2}


El número de bits con el que se indica la subred se denota con una máscara de subred: 32 bits, 1 para bits de red y subred, 0 para bits de máquina.

Ejemplos:

Dirección de clase Máscara Subredes
163.117.0.0 255.255.255.0 163.117.1.0 - 163.117.1.255
    163.117.2.0 - 163.117.2.255
    ...
    163.117.254.0 - 163.117.254.255
    163.117.255.0 - 163.117.255.255
193.147.71.0 255.255.255.128 193.147.71.0 - 193.147.71.127
    193.147.71.128 - 193.147.71.255



\includegraphics[height=0.7cm]{gsyc2}


Encaminamiento

Cualquier máquina IP puede está o no configurada como encaminador:



\includegraphics[height=0.7cm]{gsyc2}


Para encaminar, una máquina consultará su tabla de encaminamiento. En ella, para enviar un datagrama a una cierta dirección IP destino, buscará por este orden:

  1. Una entrada con una dirección IP de máquina igual a la buscada.
  2. Una entrada con una dirección IP de red igual a la parte de red de la buscada.
  3. Una entrada por defecto (0.0.0.0).



\includegraphics[height=0.7cm]{gsyc2}


Las tablas de encaminamiento tienen el aspecto:

% netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
163.117.137.0   0.0.0.0         255.255.255.0   U      1500 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U      3584 0          0 lo
0.0.0.0         163.117.137.2   0.0.0.0         UG     1500 0          0 eth0

U
ruta utilizable
G
ruta indirecta (pasarela)


\includegraphics[height=0.7cm]{gsyc2}


CIDR

El mecanismo de las clases A, B y C se ha mostrado muy inflexible y ha provocado:

Solución (mientras que se pasa a IPv6): CIDR (Classless Inter Domain Routing): Encaminamiento sin clases.


\includegraphics[height=0.7cm]{gsyc2}


Con CIDR:



\includegraphics[height=0.7cm]{gsyc2}


ARP (Address Resolution Protocol)


El protocolo de resolución de direcciones ARP proporciona una forma de pasar de una dirección IP a una dirección Ethernet.

Cuando el nivel IP va a enviar un datagrama con una cierta dirección IP de destino:

En cualquiera de los dos casos, sólo se conoce la dirección IP de una máquina adyacente a la que pasar el datagrama, pero para formar la trama Ethernet se necesita conocer la dirección Ethernet de destino.



\includegraphics[height=0.7cm]{gsyc2}


Para conocer la dirección Ethernet de una máquina de la misma subred, dada su dirección IP, una máquina hace lo siguiente:

  1. Envía una trama Ethernet de broadcast consistente en una solicitud ARP, conteniendo la dirección IP en cuestión.
  2. Aquella máquina que reciba una solicitud ARP preguntando por su propia dirección IP, contesta con una trama Ethernet dirigida a quien hizo la pregunta, conteniendo una respuesta ARP indicando la dirección Ethernet pedida.

Las máquinas mantienen una cache de correspondencias direcciones IP a direcciones Ethernet.



\includegraphics[height=0.7cm]{gsyc2}


Formato del paquete de solicitud/respuesta de ARP



\includegraphics[height=0.7cm]{gsyc2}




\includegraphics[height=0.7cm]{gsyc2}


RARP (Reverse Address Resolution Protocol)

En ocasiones es necesario un método para obtener la dirección IP de una máquina a partir de su dirección Ethernet.

Ejemplo: Al arrancar una estación sin disco, no puede tener en ningún fichero de configuración su dirección IP. Sólo sabe que tiene una tarjeta Ethernet en la que está grabada su dirección Ethernet.

Mecanismo de RARP:

  1. La máquina envía un broadcast de una solicitud RARP, indicando su dirección Ethernet.
  2. Alguna máquina de la subred le enviará una respuesta RARP indicándole cuál es su dirección IP.



\includegraphics[height=0.7cm]{gsyc2}


Lo habitual es tener una máquina en la subred que actúe como servidor de RARP, manteniendo una tabla de correspondencias de direcciones Ethernet a direcciones IP para todos los nodos de la subred.

Si, por razones de protección frente a fallos, se colocan varios servidores de RARP en la misma subred, el protocolo establece que se tomará sólo la primera respuesta RARP recibida por la máquina que lanzo la solicitud RARP.

Alternativas a RARP: BOOTP (similar) y DHCP (más complejo).



\includegraphics[height=0.7cm]{gsyc2}


ICMP (Internet Control Message Protocol)

Este protocolo se utiliza para interrogar y/o comunicar condiciones de error entre máquinas.

Los mensajes ICMP se transmiten encapsulados en datagramas IP. Su formato es:

\includegraphics[height=2.5cm]{figs/ip-3}



\includegraphics[height=0.7cm]{gsyc2}


Ejemplos de mensajes ICMP:

tipo código descripción
0 0 respuesta de eco
3 0 destino inalcanzable: red inalcanzable
3 1 destino inalcanzable: máquina inalcanzable
3 3 destino inalcanzable: puerto inalcanzable
8 0 solicitud de eco
11 0 tiempo excedido: TTL = 0
12 1 cabecera IP mal: falta una opción
13 0 solicitud de marca de tiempo
14 0 respuesta de marca de tiempo



\includegraphics[height=0.7cm]{gsyc2}


NAT (Network Address Translation)



\includegraphics[height=0.7cm]{gsyc2}


Congestión en Internet

El nivel de red (IP) ofrece un servicio basado en datagramas.

La principal fuente de pérdidas de paquetes en Internet se debe a la congestión de encaminadores, que actúan descartando paquetes.

IP no toma ninguna medida para prevenir o disminuir la congestión: será labor de protocolos de niveles superiores, en su caso.




Versiones de este documento: [ps.gz][html.tar.gz][dvi.tar.gz]
GSyC
Last updated: 2002-10-23
Hosted by www.Geocities.ws

1