# 8-Protocolo IP.

Internet Protocol (RFC 791
Es un protocolo de la capa 3 (red) del modelo OSI. Entre sus funciones se encuentran:

- Dividir paquetes grandes en paquetes más pequeños.
- Encontrar la ruta necesaria para enviar un paquete individual.
- Determinar si un paquete recibido es correcto.

En Internet, el protocolo IP corresponde con el nivel de red ISO/OSI. No tiene todas las características:

- IP no tiene control de la congestión.
- No es orientado a conexión ni confiable.

Existen dos versiones:

- IPv6: Reemplazará a IPv4 a medio plazo.
- IPv4: La más usada actualmente, es la estudiada aquí.

Estrutura del protocolo.

## Longitud de la cabecera.

IP no tiene un tamaño de cabecera fijo. Algunas opciones del protocolo añaden palabras de 32 bits.
Por eso se necesita saber dónde empiezan los datos en cada paquete.

## Código de redundancia.

El checksum se calcula como la suma (sin acarreo) de todas las palabras de 32 bits de la cabecera. Excepto el propio checksum.
Sirve para detectar errores de transmisión, es adicional al que pueda tener la capa de transporte.

## Identificación del paquete y fragment offset.

Todos los paquetes IP tienen un identificador único: identification y fragment offset.
Originalmente, un paquete se manda en un solo fragmento, con fragment offset a 0.
Si se necesita dividor (MTU de nivel de enlace insuficiente).

- Se parte en varios fragmentos.
- cada uno de ellos indica el lugar de su primer byte de datos.

Cada fragmento puede volverse a dividir. En el destino, se espera a que lleguen todos los fragmentos antes de enviarlo al protocolo de nivel superior.

## Flags

El primer es para usos futuros.
El segundo indica si este datagrama se puede fragmentar.
El tercero dice si hay más fragmentos o es el último.

## TTL (Time to life - Tiempo de vida)

El enrutador IP puede tener problemas. Es posible que haya bucles en las rutas que hagan que un paquete de vueltas por siempre.
Para evitarlo, el paquete se descarta pasado un tiempo en segundos (originalmente). Actualmente, el tiempo de vida se mide en saltos.
Generalmente, los paquetes se envían con TTL suficiente para atravesar Internet (64 ó 255).

## Protocolo de nivel superior.

Indica qué protocolo está encapsulado en los datos.

. Identificador | . Protocolo | .
0x01 | ICMP | Internet Control Message Protocol
0x02 | IGMP | Internet Group Management Protocol
0x06 | TCP | Tranmission Control Protocol
0x11 | UDP | User Datagram Protocol
0x29 | IPv6 | IPv6 Encapsulation
0x59 | OSPF | Open Shortest Path First
0x73 | L2TP | Layer Two Tunneling Protocol Version 3.
0x85 | FC | Fibre Channel

## Dirección de origen y destino.

Son números de 32 bits. Indican la dirección de origen y destino de IP.
Pueden no coincidir con la dirección de origen real. Por ejemplo:

- En los saltos intermedios.

  En esos casos, el origen y el destino en ese momento no son los indicados en la cabecera.

## Direcciones IP.

Una dirección IP consta de 32 bits. Por convenio, se representan como 4 números decimales, uno por cada byte.

        192.168.1.1
        _______________________________

        110000001010000000000100000001

### ¿Qué identifican?

Las direcciones no se asignan por host. Se asignan a interfaces del host.

- Un equipo con dos enlaces a la red tendrá dos direcciones IP.
- Los enlaces a la red pueden ser a la misma red o a redes distintas.

También un mismo interfaz puede tener más de una IP.

## Red y Host

Las direcciones IP se asignan al montar la red, no como las MAC. Las direcciones MAC se asignan por el fabricante de la tarjeta, quedando distribuidas casi aleatoriamente.
Las dirección IP contiene dos partes:

- Una parte identifica a la red.
- Otra parte identifica al host/enlace dentro de la red.

192.168.1.1 | Parte de red | Host
| 192.168.1 | 1
| 192.168. | 1.1

## Clases de IP.

En las primeras versiones de IP había normas fijas para definir qué parte de la dirección era el host y qué parte red.
Los primeros bits de la dirección definen la clase a la que pertenece.

### Parte de red y host

La clase define qué bits de la dirección son parte de la red y qué parte es del host.

### Dirección de red.

La IP tiene una dirección propia.

- No puede ser utilizada por un host dentro de la red.
- La dirección de la red tiene la parte del host a ceros.

        192.68.1.1  Parte de red Dirección de red Host
        _________________________________________________________________

                        192.168.1         192.168.1.0                 1

### Dirección del host

El host tiene una dirección propia dentro de la red.

- Con ceros en la parte de la red.
- No puede haber una red con todos los bits a cero

    192.68.1.1Parte de redDirección de redHostDirección de host
    ______________________________________________________________________________________

                    192.168.1          192.168.1.0          1          0.0.0.1

## Resumen de direcciones de red y host

Bits de red | Bits de host | Significado
0 | 0 | El propio host (desuso)
0 | host | Host indicado dentro de mi red (desuso)
red | 0 | Dirección de la red
1 | 1 | Difusión a mi red (desuso)
red | 1 | Difusión a la red indicada (broadcast)

### ¿Para qué sirve la red y el host?

Cuando un host va a enviar un paquete:

- Decide si el destino está en su misma red.
- Si está en su misma red, se encarga la capa de enlace (ARP).
- Si no está en su red, envía el paquete al router.
- Y el router está en su misma red.

## Problemas de las clases IP.

En un principio, IP tenía suficientes direcciones y redes para todo el mundo. La creciente demanda de direcciones IP supuso problemas.
Últimamente, desde 1985, las direcciones IP ya no se divicen en clases, utilizando CIDR ( Classless Internet Domain Routing ).

## CIDR

Classlesst Internet Domain Routing.
La dirección IP ya no da información acerca de los bits reservados para red y para host.
Las redes se identifican por la dirección de la red y el número de bits destinado a la misma.

- 172.16.0.0/12
- 198.18.0.0/15

## Máscara de red.

Con CIDR la parte de la dirección red y host se calcula mediante las máscaras de red.
La máscara de red es un número binario:

- Tantos 1's como el tamaño de la red CIDR.
- Los 0's necesarios para completar hasta los 32 bits.

Las máscaras de red también se expresan como 4 números decimales separador por puntos.

## Dirección de red.

Con CIDR, la dirección de red sigue siendo la que tiene todos los bits del host a 0, y la de broadcast a 1. Sin embargo, ya no es tan fácil como con clases.
Los bits de la red no son múltiplos de 8.
Se utiliza una máscara de red, realizando la operación 'AND'con la dirección IP para encontrar la dirección de red.
Ejemplo:
La dirección IP es 192.168.20.100/26
La máscara de red son 26 → 1's → 255.255.255.192
La dirección pertenece a la red.

                    255.255.255.192
                AND 192.168.020.100
                --------------------
                    192.168.020.064

La red a la que pertenece es 192.168.20.64/26

## Subnetting y supernetting

Utilizando máscaras de red pueden saltarse los límites de las clases IP.

- Una red grande puede dividirse en varias redes pequeñas (Subnetting).
- Varias redes pequeñas pueden reunirse en una red más grande (Supernetting) .

### Subnetting

Consiste en crear subredes pequeñas dentro de una red de clase A,B o C. Ejemplo:
Conseguir 4 redes a partir de una red de clase C. Hay que aumentar la máscara de red 2 bits ( 4 posibilidades).

                            Redes           Primer host      Último host       Broadcast
        __________________________________________________________________________________

        Red original    192.168.20.0/24    192.168.20.1     192.168.20.254    192.168.20.255

        Primera subred  192.168.20.0/26    192.168.20.1     192.168.20.62     192.168.20.63
        Segunda subred  192.168.20.64/26   192.168.20.65    192.168.20.126    192.168.20.127
        Tercera subred  192.168.20.128/26  192.168.20.129   192.168.20.190    192.168.20.191
        Cuarta subred   192.168.20.192/26  192.168.20.193   192.168.20.254    192.168.20.255

### Supernetting.

A partir de varias redes pequeñas (generalmente clase C), conseguir una más grande.
Ejemplo:
Conseguir una red con más de 1000 hosts a partir de redes clase C.
Tenemos las 32 redes 192.168.0.0 a la 192.168.31.0
Reducimos la máscara en 5 bits → 192.168.0.0/19

        Red             Primer host      Último host       Broadcast            Máscara
        ____________________________________________________________________________________
        192.168.0.0/19  192.168.0.1     192.168.31.254      192.168.31.255  255.255.255.224

## ¿Qué es una red privada?

Una red privada (RFC 1918) son direcciones inválidas en internet.
Un router de internet descarta todos los paquetes con origen o destino en redes privadas.
Sirven para crear redes con IP que no forman parte de Internet. Internas a organizaciones: Empresas, universidades, institutos,...
Objetivos:

- No es posible ocultar direcciones de Internet: Ningún ordenador interno tendrá la dirección: 8.8.8.8
- Ahorro de direcciones IP.
- Siguen teniendo acceso limitado a Internet: NAT.

## CIDR: Redes reservadas.

En el estándar CIDR se reserva la primera y última red de cada partición. Por ejemplo, al dividir la red de clase C, 192.168.20.0/24 en 4 redes (pasando a máscara /26).
Las redes 192.168.20.0/26 y 192.168.20.192/26 quedan reservadas.
La mayoría de routers e implementaciones de IP pueden trabajar con ellas, pero es mejor no usarlas para no tener problemas con equipos antiguos.