El IP (Internet Protocol)
Vicente González Ruiz
December 14, 2014
Contents
1 Funci’on
- Se encarga del encaminamiento de los paquetes de datos en Internet.
- Cada paquete se considera una unidad de informaci’on totalmente
independiente de los dem’as. Esto quiere decir que s’olo se tiene en cuenta
la direcci’on IP destino del paquete para realizar el encaminamiento del
mismo a trav’es de Internet. Es frecuente llamar a los paquetes de datos
datagramas cuando ’estos son transmitidos de esta manera.
- Existen actualmente dos versiones: la IPv4 (RFC 791) que es la que en
estos momentos m’as se utiliza y la IPv6 (RFC 2460, RFC 2373) que se
planea utilizar en un futuro pr’oximo.
- IPv6 es compatible hacia atr’as con IPv4 (IPv6 es capaz de encaminar
paquetes IPv4).
2 Formato de la cabecera en IPv4
- Version: Versi’on del protocolo IP (4).
- IHL (Internet Header Length): Tamaño de la cabecera del paquete IP en
palabras de 32 bits.
- Type of Service (TOS): Indicaci’on de la calidad de servicio que se
espera recibir por parte de los routers (tr’afico multimedia, informaci’on
sobre la congesti’on de la red, etc.).
- Total Length: Tamaño del datagrama IP (cabecera y datos) en bytes.
Tamaños t’ipicos son (debido principalmente a los MTU’s de las redes)
bytes (Ethernet) y
bytes (PPP).
- Identification: Etiqueta creada por el emisor del paquete y que se
utiliza cuando ’este se fragmenta.
- Flags:
Bit 0: reserved, must be zero.
Bit 1: (DF) 0 = May Fragment, 1 = Don’t Fragment.
Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments.
- Fragment Offset: Offset del paquete cuando se ha fragmentado en palabras de
8 bytes.
- Time to Live (TTL): Valor que se decrementa cada vez que
el paquete es retransmitido por un router. Cuando TTL
entonces el paquete
se destruye .
- Protocol: Protocolo al que va dirigido el paquete (RFC’s 790, 1700 y 3232).
Por ejemplo, cuando se transporta un paquete UDP se utiliza el 17, para TCP
el 6, para ICMP el 1, etc.
- Header Checksum: C’odigo de detecci’on de errores que sirve para desechar el
paquete si se han producido errores de transmisi’on en la cabecera. Es
una suma de todas las palabras de 16 bits de (s’olo) la cabecera IP
usando aritm’etica en complemento a 1 (RFC 1071). Este valor es
recalculado en cada hop (salto) porque en cada uno de ellos el TTL se
decrementa.
- Source Address: Dir IP del host que gener’o el paquete.
- Destination Address: Dir IP del host al que va dirigido el paquete.
- Options: Campo de longitud variable (desde 0 bytes) que se utiliza para
diferentes prop’ositos (almacenar rutas, colocar estampas de tiempo,
etc.).
- Padding: Bits a
rellenando la cabecera hasta tener un tamaño m’ultiplo de
bits.
3 Formato de la cabecera en IPv6
- Version: Versi’on del protocolo ().
- Traffic Class: Identifica el tipo de tr’afico. Por ejemplo, sirve para
diferenciar el tr’afico multimedia del que no es sensible al tiempo.
- Flow Label: Identifica a los paquetes de un mismo flujo de datos (tr’afico
multimedia).
- Payload Length: N’umero de bytes de datos transportados (sin considerar
la cabecera que es de tamaño fijo –
bytes –).
- Next Header: Identifica el protocolo que utiliza el IP (igual que IPv4).
- Hop Limit: TTL.
- Source Address: Dir IP del host origen del paquete.
- Destination Address: Dir IP del host destino del paquete.
4 IP (Internet Protocol) [1]
- Introduced by Vint Cerf and Bob Kahn in 1974.
- IP performs routing of the packets in the Internet.
- If you use the Internet, the use of the IP is compulsory.
- There are two major versions: version 4 and 6. Both currently coexist.
struct IPv4_header {
uint4 Version = 4;
uint4 Internet_Header_Length; /* In int32 words. */
uint8 Type_Of_Service; /* Router handling (ignored). */
uint16 Total_Length; /* Of the header in bytes. */
uint16 Identification; /* Fragment label. */
bit Reserved_Flags = 0;
bit DF; /* Don’t frgment = 1. /
bit MF; /* More fragments = 1. */
uint13 Fragment_Offset; /* In int64 words. */
uint8 Time_To_Live; /* Maximun number of hops. */
uint8 Protocol; /* UDP = 17, TCP = 6, ICMP = 1, ... */
uint16 Header_Checksum; /* Error detection code. */
uint32 Source_IP_address;
uint32 Destination_IP_Address;
int32* (Options+Padding);
};
struct IPv6_header {
uint4 Version = 6;
uint8 Traffic_Class; /* For QoS. */
uint20 Flow_Label; /* For QoS. */
uint16 Payload_Length; /* In bytes. */
uint8 Next_Header; /* UDP = 17, TCP = 6, ICMP = 1, ... */
uint8 Hop_Limit;
uint128 Source_IP_Address;
uint128 Destination_IP_Address;
};
5 Fragmentaci’on y ensamblaje
- S’olo en IPv4. No en IPv6 .
- Cada tecnolog’ia de red posee un l’imite en el tamaño m’aximo del
paquete a transmitir (MTU). Por ejemplo, en Ethernet el l’imite es de
bytes.
- El IP (en los hosts y en los routers), antes de enviar los datagramas los
fragmenta de forma que ninguno de ellos tiene un tamaño superior al
MTU de la red directamente conectada.
- Durante el trayecto los datagramas pueden ser re-fragmentados si se
atraviesa una red de menor MTU.
- S’olo el IP del host destino realiza el ensamblaje (nunca los routers). Si
alguno de los fragmentos no llega correctamente se desechan el resto de
fragmentos.
- En la Figura 1 se muestra un ejemplo sencillo.
Ejercicio 1: Idee una t’ecnica que no consista en usar el ICMP y
que permita conocer el MTU m’aximo del enlace que une dos hosts.
Enviar un paquete grande y medir la longitud del framgmento ms
largo en el receptor.
Ejercicio 2: Usted tiene acceso a un host para ejecutar nicamente
un packet sniffer. Adems, slo sabe que dicho host est conectado a
Internet. Qu hara para averiguar la direccin IP asignada al menos a
uno de los adaptadores de red de dicho host?
Capturar al menos un paquete que vaya dirigido especficamente a
dicho host. Cualquier paquete que es transmitido usando el TCP o
el UDP valdra. Luego mirara la direccin IP destino de este paquete.
6 Direccionamiento en IPv4
- Cada enlace que se conecta a un host o un router en Internet lo hace
a trav’es de un interface y cada interface tiene asociada una direcci’on
IP.
- En IPv4 las direcciones IP son de 32 bits y en IPv6 de 128 bits.
- Las direcciones IP son jer’arquicas (v’ease la Figura 2). La primera parte
identifica la red a la que est’a conectada el interface y la segunda parte, el
interface dentro de la red.
- Por definici’on, todos los interfaces de una misma red tienen la misma
direcci’on de red.
- En IPv4 se suele utilizar la notaci’on decimal punteada para representar las
direcciones IP, donde cada byte se traduce a su forma decimal y se separa por
un punto del resto de bytes de la direcci’on. Ejemplo:
00001111 00010001 00000001 00000010 = 15.17.1.2
- Para diferenciar en una dir IP la direcci’on de la red y la direcci’on del
interface, se utiliza la m’ascara de red. En el caso de IPv4 son 32 bits y para
IPv6 128. Las m’ascaras son siempre de la forma
donde se cumple que
dir_IP AND m’ascara = dir_Red
y que
dir_IP MOD m’ascara = dir_Interface.
7 Clases de direcciones IP
- Las redes IP se consideran de diferentes clases dependiendo de los bits m’as
significativos [2]:
8 Tipos de direcciones multicast
- Direcciones de enlace local reservadas (224.0.0.0 - 224.0.0.255):
Se utilizan para transmisiones multicast dentro de la red local porque los
paquetes enviados a estos destinos siempre se generan con un TTL = 1, y
por tanto, el gateway nunca los sacar fuera de la subred.
- Direcciones
agrupadas globalmente (224.0.1.0 - 238.255.255.255): Se utilizan
para enviar trfico multicast al resto de Internet. Por ejemplo, la direccin
224.0.1.1 se utiliza para mantener sincronizados los relojes de los hosts
mediante el protocolo NTP (Network Time Protocol).
9 Sub-netting y direcciones CIDR en IPv4
Ejemplo de red IP

Las 4 sub-redes forman la red 150.214.0.0/22.
10 Direcci’on de red y de broadcast de una red
- Por definici’on, la primera direcci’on IP del rango de direcciones asignadas
a una red es la direcci’on IP de la red.
- Por definici’on, la ’ultima direcci’on IP del rango de direcciones asignadas
a una red es la direcci’on de broadcast de la red.
- La direcci’on de red no puede usarse para ning’un adaptador de red.
- La direcci’on de broadcast no puede usarse para ning’un adaptador de red
y todos aquellos paquetes que van dirigidos a ella llegan, por definici’on,
a todos los adaptadores de red de la subred.
- Existen dos tipos de direciones de broadcast:
- Direccin de broadcast dirigido (directed broadcast): Es la
ltima direccin del rango de direcciones de la subred y sirve para hacer
un broadcasting desde un host que est fuera de dicha subred. Por
ejemplo, el host 192.168.1.2/24 puede hacer un broadcast a todos
los hosts de la red 192.168.2.0/24, enviando un paquete a la direccin
192.168.2.255.
- Direccin de broadcast limitado (limited broadcast): se realiza
mediante la direccin 255.255.255.255 y los routers jams propagan este
trfico. Por tanto, el broadcast limitado slo sirve para hacer una difusin
dentro de la propia subred.
11 Rutas por defecto (default routes) (0.0.0.0 /8)
- Esta direcciones las usan los routers para especificar las rutas por defecto
y por tanto no pueden ser usadas para ningn adaptador de red.
12 Direcciones Loopback (127.0.0.0/8)
- Se utiliza para comunicar procesos dentro del mismo host.
- Son ms ptimas que usar la direccin IP de uno de los adaptadores del host
porque los paquetes no necesitan atravesar las capas de red, enlace y fsica.
- No son direcciones pblicas.
13 Direcciones de red local (Link-local addresses) (169.254.0.0/16)
- Se usan cuando no existe informacin sobre la configuracin del IP.
- Permiten montar una red privada virtual sobre una red pblica.
- Todos los paquetes que la usan reciben un TTL = 1 (nunca atraviesan
el/los gategay/s).
- No son direcciones pblicas.
14 Direcciones TEST-NET (192.0.2.0/24)
- Se dedican a fines didcticos.
- No son direcciones pblicas.
15 La transici’on de IPv4 a IPv6
- RFC 2893.
- A principio de los 90 el IETF predijo que el espacio de direcciones del
IPv4 se gastar’ia aproximadamente en 2008 [2]. Luego apareci’o el CIDR
y se comenz’o a hacer un uso intensivo del NAT y del DHCP, con lo que
el consumo se ha reducido considerablemente.
- Actualmente existen routers IPv4 e IPv6 funcionando.
- Los routers IPv6 son capaces de encaminar IPv4, pero no al contrario.
- Cuando un router no entiende IPv6 se utiliza una t’ecnica llamada tunneling,
que consiste en encapsular datagramas IPv6 en datagramas IPv4 cuando los
puntos extremos utilizan IPv6 y los routers intermedios s’olo entienden IPv4
(v’ease la Figura
6).
Ejercicio 3: Asigne direcciones IP a cada una de las subredes que
aparecen en la Figura
7, teniendo en cuenta que:
- Todas las direcciones deben ser asignadas de la red
214.97.254.0/23.
- La red A deben soportar
interfaces.
- La red B deben soportar
interfaces.
- La red C deben soportar
interfaces.
Semejante al problema 4.14 de la tercera edicin del libro de Kurose y Ross.
+----------------------------+----------------------------+----------------------------+
| 214.97.1111 1111.1111 1111 | | |
| | | Red C |
| | | |
| | | 214.97.255.128/25 - |
| | | 214.97.255.128/30 |
| | | Total 124 |
| | Redes C(120) y F(4) | 214.97.1111 1111.1000 0100 |
| | +----------------------------+
| | 214.97.255.128/25 | 214.97.1111 1111.1000 0011 |
| | | Red F |
| | | 214.97.255.128/30 |
| | 214.97.1111 1111.1000 0000 | Total 4 |
| +----------------------------+----------------------------+
| | 214.97.1111 1111.0111 1111 | |
| | | Red B(120) |
| | | |
| | | 214.97.255.0/25 - |
| | | 214.97.255.0/30 |
| | Redes B(120) y E(4) | Total 124 |
| | | 214.97.1111 1111.0000 0100 |
| | 214.97.255.0/25 +----------------------------+
| | | 214.97.1111 1111.0000 0011 |
| | | Red E(4) |
| | | 214.97.255.0/30 |
| | 214.97.1111 1111.0000 0000 | Total 4 |
| Redes A,B,C,D,E y F +----------------------------+----------------------------+
| | 214.97.1111 1110.1111 1111 | |
| 214.97.254.0/23 | | |
| | | Red A(252) |
| | | 214.97.254.0/24 - |
| | | 214.97.254.0/30 |
| | Redes A(252) y D(4) | |
| | | Total 252 |
| | 214.97.254.0/24 | |
| | | 214.97.1111 1110.0000 0100 |
| | +----------------------------+
| | | 214.97.1111 1110.0000 0011 |
| | | Red D(4) |
| | | 214.97.254.0/30 |
| 214.97.1111 1110.0000 0000 | | Total 4 |
+----------------------------+----------------------------+----------------------------+
References
[1] Behrouz Forouzan. Data Communications and Networking, 4th Edition.
McGraw-Hill, 2007.
[2] James F. Kurose and Keith W. Ross. Computer Networking: A
Top-Down Approach Featuring the Internet (2nd Edition). Addison Wesley,
2003.