Ir al contenido principal

Redes: Enrutamiento, direccionamiento y subnetting.

Si estás leyendo esto es porque estás conectado a Internet, cuando decidiste entrar a este blog, tu navegador realizó una petición que recorrió todo el internet hasta llegar al servidor de Google y así obtener lo que estás leyendo en este mismo momento. En este post voy a intentar explicar cómo es que esto es posible abarcando los principios básicos de redes, subredes y enrutamiento.


La internet

La internet se define como una red global de computadoras conectadas entre sí (inter:del sufijo inter net:red).

La Internet está conectada por una gran cantidad de enrutadores. Estos son dispositivos capaces de gestionar conectar redes. Antes de llegar a su destino, la información que envie un dispositivo (PC, móvil etc) tiene que pasar a través de varias redes y los enrutadores son los dispositivos que re-enviarán esa información de una red a otra para así este llegue a su destino.


¿Que es una Red?
Se define como a red informática a un conjunto de Nodos interconectados entre sí.

El nodo es un concepto un tanto relativo, generalmente podemos referirnos como nodo a una computadora, un teléfono o un enrutador. 
Desde otra perspectiva también podemos considerar Nodo a cada una de un conjunto de redes formando otra más grande.

#El Router

El protagonista encargado de crear y conectar una o varias redes es el enrutador.

Simbología del router


El 
rúter,​ enrutador,​ (del inglés router) o encaminador,​ es un dispositivo que trabaja sobre la capa 3 del modelo OSI y permite interconectar computadoras que funcionan en el marco de una o más redes. Su función es la de establecer la ruta que destinará a cada paquete de datos dentro de una red informática. (Fuente:wikipedia)

  • Los enrutadores pueden proporcionar conectividad dentro de las empresas, entre las empresas e internet, y en el interior de proveedores de servicios de Internet (ISP).
  • La función principal del router es tal cual dice su nombre, la de encaminar o enrutar paquetes dentro de una red buscando la mejor ruta posible,  a este proceso se le denomina enrutamiento.
  • El router por lo tanto debe tomar decisiones que le permitan enviar paquetes a través del trafico red de manera eficiente, evaluando una ruta óptima para que el trafico llegue a su destino. 

La Interfaz del router
Hablamos del enrutador, un dispositivo capaz de crear y conectar redes, para efectuar esta función, el enrutador se vale de la interfaz.
La interfaz es un concepto abstracto el cual representa el punto en común donde se pueden enlazar, ya sea por medio de un cable o señal, uno o varios Nodos para formar una red

La computadora 1 y 2 se conectan al router por medio de la interfaz 1, formando una red independiente.

El enrutador para cumplir su función de conectar redes, debe contar con como mínimo dos o más de estas interfaces.

Dos redes conectadas a y por medio de un enrutador

El enrutador puede también estar a la vez conectado a otro enrutador, el cual también puede contar con su propia red.

De este modo cada nodo/nodos conectado/s a una interfaz conforma una red independiente y perfectamente demarcada.

Una red compuesta de 2 computadoras y 1 enrutador(R2)/ Una red de enrutadores/ Una red compuesta de 2 computadoras y 1 enrutador(R2)


A gran escala

El concepto es claro, los enrutadores ofrecen una forma de conectar redes independientes, escalando un poco este concepto logramos comprender como se conectan estas y conforman el internet.


Internet como una red de redes

#Niveles de Red
La internet es una red de redes, en una red "elemental" podemos comprender dos niveles, el nivel red y el nivel host.
El host serían los nodos conectados a una red y la red como tal el dispositivo que la crea y gestiona.


Es un concepto relativo, un enrutador pude ser a la vez host de otro enrutador que conecta varios enrutadores.



¿Cómo se comunican los nodos?

La red funciona bajo el principio de conmutación de paquetes, esto quiere decir que los nodos que la componen y están interconectados por ella, tienen la habilidad de enviar trozos de información que seguirán un camino especifico por la red hacia otro nodo, que es el objetivo de principal de ellas.

Como se mencionó previamente, el router trabaja sobre la capa red del modelo OSI operando con el protocolo IP(Internet Protocol)

Los datos en una red basada en IP son enviados en bloques conocidos como datagramas. Este es un paquete de datos altamente estructurado que almacena tanto los datos que quiere enviar un nodo a otro como las instrucciones necesarias sobre como hacer que estos lleguen a su destino.

Contenido de un datagrama IP

Cuando un nodo en una red quiera enviar datos a otro nodo, ya sea ubicado en la misma red o en otra, se envían eso datos incrustados dentro de un datagrama IP al enrutador al que esté conectado, este lo va a recibir y en base a la información que contenga, va a saber que hacer con el.

Direccionamiento y enrutamiento

Como se mencionó anteriormente, el datagrama además de contener los datos que se quieren enviar, contiene la información necesaria para que el enrutador haga honor a su propio nombre y "enrute" el contenido de ese datagrama.

Para enrutar precisamos una forma de identificar desde quien, el origen y hacia donde, el origen, contando así con una forma de distinguir un dispositivo del otro, y también de una red de otra.

#Las direcciones IP

Tal cual la dirección de una casa o un número de teléfono, cada nodo conectado a una red se le asigna un numero que le va a identificar en la misma. Y a la vez, una red de la otra.

El protocolo IP para ello se vale de la dirección IP.


Esta es una cadena de una longitud de 32bits. Se puede dividir en 4 partes, 4 octetos que pueden dar hasta un total de 255 valores (2⁸) cada uno y se expresa generalmente en decimal, cada valor separado por un punto.

134.124.34.9 es una dirección IP valida, en cambio 345.123.503.3 no lo es por que algunos de sus octetos exceden el valor máximo.

En su totalidad 32 bits nos permite un total de 4,294,967,296 direcciones (2³²).

Asignación de IP

Estas IP se asignan siguiendo una jerarquía especifica que las permite distinguir una red de otra y a la vez darle a cada uno de sus dispositivos conectados a ella una dirección en común que permita identificarlos como miembros de tal.

El enrutador designa a cada dispositivo conectado a el su propia dirección red y a la vez una a la propia para la interfaz.

Esta asignación es posible gracias a un servidor que tienen incorporados los enrutadoras llamado DHCP (Dinamic Host Configuration Protocol o Protocolo de configuración dinámica de host) que le permite configurar una dirección IP fija o dinámica a todos los dispositivos que se conecten en él de forma automática sin que el usuario tenga que hacer nada.

En los albores...

Hace varios años aproximadamente en los 80', cuando el internet estaba formado solo por algunos cientos de computadoras, a la hora de identificar redes estas tenían que encontrar una forma de  repartirse esa tremenda cantidad de posibles direcciones.

Fue entonces cuando se decidió dividir ese espacio total en 5 categorías, la clase A,B,C, D y E.

Cada clase comprendía de un intervalo especifico de direcciones, de este modo la clase A nos daba una cantidad total de 128 redes las cuales cada una podían contener hasta 16.777.214 de hosts tal cual indica la tabla. La clase B soportaba 16.384 redes con 64.534 host cada unos y así con las demás.

De este modo cuando una empresa quería conectar su red interna a internet, se le reservaba una dirección red para identificarla de las demás en internet.

...las direcciones IP
Como mencionamos anteriormente, una red se puede dividir en el nivel red y nivel host.
Es por ello que se dispuso que una parte de los primeros bits de la dirección IP se dedicarían al identificador red y los demás sobrantes al identificador host.

Una porción de la IP para identificar la red y otra el host


El enmascaramiento IP

Como una dirección IP consiste en puramente bits, el router necesita un método para extraer las partes que la compongan para saber que hacer. Esto se puede lograr aplicando una operación a nivel bits llamada enmascaramiento de bits.

El enmascaramiento bit es una operación a nivel bits que permite encender o apagar bits específicos en una cadena de bits, dicha operación es posible aplicando compuertas lógicas entre una cadena especifica de bits a la que se quiera manipular y otra de referencia la cual sería la máscara.

El router va a precisar aplicar una máscara sobre la dirección que reciba para extraer los identificadores correspondientes y saber que hacer con ellos.

La máscara red

Es una combinación de bits que sirven para delimitar el ámbito en una red de ordenadores. Su función es concluir que parte de la IP pertenece al identificador de la red y que parte corresponde al host.

Ejemplo tomando la máscara de una dirección tipo C:

En decimal punteado:       255.255.255.0

En binario     11111111 11111111 11111111 00000000

Se compone de 4 octetos donde la parte con “1” indica la parte fija y la “0” la parte variable. 

La parte fija nos indica el identificador red y la parte variable el identificador de host.

Los primeros 3 octetos, 255.255.255 pertenecería al identificador red y el ultimo octeto, 0, a la cantidad de hosts soportados.

Ejemplo de enmascaramiento:

Basándose en el sistema de direccionamiento con clases antiguo, si el enrutador recibía para interpretar la IP 191.235.156.4, podía saber por los primeros 4 bits a que clase de dirección pertenecía así aplicando la máscara correspondiente y pudiendo extraer el identificador red y el identificador host.

Se identifica la clase de IP y se efectúan las operaciones para extraer los identificadores y validar la red.


El problema de las clases redes

El sistema de IP con clases funcionaba bien por esos años cuando el internet no era tan masiva, pero a medida que empezaba a expandirse, se empezaban a agotar las direcciones y sobrecargar las tablas de enrutamiento (eran demasiadas IP que tenía que manejar un solo enrutador).

Todo esto sumando al hecho de por ejemplo si una empresa quería conectar a internet solo 500 equipos, se le podía reservar solo como mínimo una IP clase B, la cual soportaba hasta 65000 pero solo se iban a ocupar 500, se terminaba desperdiciando un enorme espacio de direcciones.

Por lo cual se propuso un método para aprovechar mejor esos bloques de direcciones y mitigar un poco la situación. Dicho método se componía de darle la capacidad a la IP de fragmentarse en redes más pequeñas llamadas subredes.

Subredes

Se propuso entonces dividir la parte identificadora de host en dos partes, la de subred y la de host.


Una solución: CIDR

Classless Inter-Domain Routing o CIDR (en español «enrutamiento entre dominios sin clases») se introdujo en 1993 por IETF y representa la última mejora en el modo de interpretar las direcciones IP.1​ Su introducción permitió una mayor flexibilidad al dividir rangos de direcciones IP en redes separadas. De esta manera permitió:

·         Un uso más eficiente de las cada vez más escasas direcciones IPv4.

·         Un mayor uso de la jerarquía de direcciones (agregación de prefijos de red), disminuyendo la sobrecarga de los enrutadores principales de Internet para realizar el encaminamiento.

CIDR reemplaza la sintaxis previa para nombrar direcciones IP, las clases de redes. En vez de asignar bloques de direcciones en los límites de los octetos, que implicaban prefijos «naturales» de 8, 16 y 24 bits, CIDR usa la técnica VLSM (variable length subnet mask, en español «máscara de subred de longitud variable»), para hacer posible la asignación de prefijos de longitud arbitraria.

CIDR engloba:

·         La técnica VLSM para especificar prefijos de red de longitud variable. Una dirección CIDR se escribe con un sufijo que indica el número de bits de longitud de prefijo, p.ej. 192.168.0.0/16 que indica que la máscara de red tiene 16 bits (es decir, los primeros 16 bits de la máscara son 1 y el resto 0). Esto permite un uso más eficiente del cada vez más escaso espacio de direcciones IPv4

·         La agregación de múltiples prefijos contiguos en superredes, reduciendo el número de entradas en las tablas de ruta globales.

Fuente:Wikipedia

CIDR es un estándar de red para la interpretación de direcciones IP. Permite variar la longitud de la  máscara red en su totalidad para permitir dividir redes en subredes más pequeñas aprovechando al máximo las direcciones.

Diferencias entre enrutamiento con Clase y Enrutamiento sin Clase:

La mayor diferencia entre los protocolos de routing con clase y sin clase es que los protocolos de routing con clase no envían información de la máscara de subred en sus actualizaciones de routing. Los protocolos de routing sin clase incluyen información de la máscara de subred en las actualizaciones de routing.

Los dos protocolos de routing IPv4 originales que se desarrollaron fueron RIPv1 e IGRP, que se crearon cuando las direcciones de red se asignaban como mencionamos anteriormente según las clases (es decir, clase A, B o C). En ese entonces, no era necesario que un protocolo de routing incluyera la máscara de subred en la actualización de routing, debido a que era posible determinar la máscara de red sobre la base del primer octeto de la dirección de red.

Fuente:https://www.itesa.edu.mx/netacad/switching/course/module7/7.1.4.5/7.1.4.5.html


CIDR y la máscara subred:

Utiliza el concepto de máscara de red de siempre a excepción de que ahora puede variar la longitud de esta para permitir definir e identificar subredes. Se compone de los bits mascara para identificar la red(network), unos para identificar subredes(subnet) y finalmente los que van a pertenecer al identificador de host(host).

Tomando una máscara de clase C:

En decimal:                     255.255.255.0/24

En binario:      11111111 11111111 11111111 00000000

CIDR Nos permite tomar prestado bits que le pertenecen al identificador de host para dividirlo en subredes.

Ejemplo:

En decimal:                     255.255.255.192/26

En binario:      11111111 11111111 11111111 11000000

Reservamos 2 bits, los cuales nos va a permitir crear 2² subredes con 2⁶ hosts cada una. Nótese que el sufijo CIDR especifica la longitud de la máscara sumándosele los bits de identificador subred.

CIDR usa máscaras de subred de longitud variable (VLSM) para asignar direcciones IP a subredes de acuerdo a las necesidades de cada subred. De esta forma, la división red/host puede ocurrir en cualquier bit de los 32 que componen la dirección IP. Este proceso puede ser recursivo, dividiendo una parte del espacio de direcciones en porciones cada vez menores, usando máscaras que cubren un mayor número de bits.

Los prefijos CIDR cortos (números cercanos a 0) permiten encajar un mayor número de direcciones IP, mientras que prefijos CIDR largos (números cercanos a 32) permiten encajar menos direcciones IP.

La aplicación de este proceso es el mismo enmascaramiento de toda la vida, solo que ahora las máscaras son mucho más flexibles.

Al proceso de dividir y definir subredes se le denomina como subnetting.


De derecha a izquierda se va dividiendo una red en otras más pequeñas hasta llegar a una punta, repartiendo el espacio de direcciones, la red 132.167.0.0/26 puede ser a la vez una subred de otra más grande.


#Las tablas de enrutamiento

Muy bien, hasta ahora sabemos que el router es responsable de gestionar e interconectar redes, asignándole un espacio de direcciones a cada una de ellas y permitiendo conectados a cada red comunicarse con otros ubicados en la misma o distinta red a través de datagramas y que dichos datagramas van a contener la dirección de destino, una dirección IP con un formato especifico que el router va a interpretar para saber hacía donde enviar ese paquete.

Para tomar esas decisiones sobre hacia donde enviar ese paquete, el router se vale de una tabla de enrutamiento.

Una tabla de enrutamiento, también conocida como tabla de encaminamiento, es un documento electrónico que almacena las rutas a los diferentes nodos en una red informática. Los nodos pueden ser cualquier tipo de dispositivo electrónico conectado a la red. La tabla de enrutamiento generalmente se almacena en un router o en una red en forma de una base de datos o archivo. Cuando los datos deben ser enviados desde un nodo a otro de la red, se hace referencia a la tabla de enrutamiento con el fin de encontrar la mejor ruta para la transferencia de datos. Fuente:wikipedia

Cada entrada en la tabla de enrutamiento puede contener la siguiente información:

  • Destino de red. Esta fila contiene cada red que el router conoce
  • Máscara de red. Es la máscara de la red destino. La máscara de red junto con el destino de red definen el conjunto de nodos a los que se dirige la ruta.
  • Puerta de enlace o gateway. Es la IP del router que debe que debe resolver. Si la puerta de enlace coincide con la red local el destino se alcanza inmediatamente por alguno de los interfaces de red local.
  • Interfaz. Es la direccion IP o nombre de interfaz de red por el que se deben enviar los paquetes de datos para alcanzar la puerta de enlace.
  • Métrica. Es un parámetro que define el coste telemático que supone enviar el paquete por esta ruta.
Tabla de enrutamiento de un router hogareño (https://emulator.tp-link.com/TL-WDR3500/Index.htm)

La tabla de enrutamiento de un host vista en Windows haciendo uso del comando route print.


El router es responsable de crear y mantener estas tablas actualizadas y sincronizarla con otros routers para así cuando recibe una dirección destino desde la capa red pueda emplear la información que contenga para realizar una decisión a la hora de enrutar los paquetes por la mejor ruta posible.

El proceso que realiza el enrutador para enviar esos paquetes se compone de los siguientes pasos: 

1 - El router recibe el paquete de dato.

2 - Busca cual es la dirección de destino.

3 – Verifica la tabla de enrutamiento que tiene configurada.

4 – Procede a enviar el paquete al destino por la mejor ruta posible.

En definitiva el router se encarga de encaminar el paquete a través de redes valiéndose de una dirección IP de destino, la cual va a consultar en su tabla de enrutamiento para saber a por que camino de la red enviarlo.

Con esto ya estaríamos cubriendo los principios básicos del direccionamiento y el enrutamiento, pero para ampliar un poco más acerca de lo primero vamos a aprender como calcular un espacio de direcciones para asignar a una red.


Subnetting: Caso practico


Vamos a hacer uso del estándar CDIR para crear subredes a partir de una IP base. Comenzamos alguna IP que se nos haya asignado (para este ejercicio coloco una aleatoria) a la cual queremos y vamos a dividir en 6 subredes donde habrá 50 equipos cada una con sus propias IP, un total de 300 hosts

                                                                          132.167.0.0


A primera vista la IP nos dice que pertenece a una de clase B por los dos primeros octetos, 132.167 que sirven de identificador red mientras que los dos últimos octetos, 0.0, corresponden al host que nos puede dar un total de 2¹⁶ direcciones posibles.

Como dijimos que vamos a dividirlas en 16 subredes entonces tendremos que asignarle un identificador que diferencie una de la otra.

Primer paso: calcular identificador de subred

Vamos a averiguar cuantos bits precisa el identificador subred, como planeamos crear 16 subredes, tendremos que encontrar la cantidad de bits necesarios para contar hasta 16.
Esto se puede lograr operando con el logaritmo de base 2 de n número.

log2(50) = 5.64


Como se puede observar, nos dio 5.64 pero siempre se redondea hacia arriba, quedando entonces 6.
(Todo esto se puede hacer tambíen tanteando los múltiplos de 2)

Sabemos ahora que necesitamos 6 bits de la máscara para representar el identificador subred.

Segundo paso: calcular identificador de host y averiguar la máscara

Ya tenemos la longitud del identificador subred, ahora necesitamos saber cuantos bits va a ocupar el identificador de host, dijimos que necesitábamos 50 hosts por cada subred, así que vamos a tener que buscar cuantos bits necesitamos para contar hasta 50.
Realizamos la misma operación.

log2(50) = 5.64

Se redondea y queda 6.
Con esto ahora sabemos que necesitamos al menos 6 bits para representar los hosts de una subred.

Tercer paso: definir la máscara

En decimal:                          255.255.255.255

En binario:      11111111 11111111 11111111 11111111

Siguiendo el principio de una máscara red, ahora sabemos que necesitamos 6 bits para el identificador de subred y 6 bits para el identificador host, procedemos a reservarlos.

En decimal:                   255.255.255.192/26

En binario:      11111111 11111111 11111111 11000000

Los bits identificador de hosts se dejan en 0 y los de subred se ponen en 1 integrándose a la máscara. Una vez hecho queda nuestra máscara red definitiva.

22 bits son de mascara, 10 para el identificador de host los cuales 4 de ellos fueron tomados para el identificador subred. 22+4+6=32. Los bits subred como mencione anteriormente, se suman al sufijo.

Tenemos la IP 132.167.0.0 por un lado y la máscara subred 255.255.255.192/26 las cuales podemos unirlas en un solo término para ahorrarnos especificarlas por separado gracias a la notación CIDR, quedando así:

132.167.0.0/26

De ahí que gracias a CIDR el router solo necesita una entrada en su tabla en vez de dos.

Otra forma de calcular la máscara puede ser consultando a la siguiente tabla:


Mientras más larga la máscara menos hosts soportados y mientras más lo contrario.

Si miramos bien el apartado de cantidad de host, la máscara /26 puede contener un máximo de 62 direcciones (se restan las 2 reservadas) cumpliendo nuestro criterio, obviando los bits necesarios para el identificador red, llegamos a la misma conclusión.

Asignación de IP a nuestras subredes:

Ahora que ya tenemos definidas podemos crearlas y asignarles un bloque de direcciones a cada subred, salimos del contexto de red y pasamos al contexto de subred, el cual pasará de emplear una máscara red a usar una máscara subred.

subnetmask: 255.255.252.0

Esto significa que la máscara subred 

 El primer bloque: 132.167.0.0/22

La primera subred se le va a asignar el primer rango de direcciones que será de 132.167.0.0 hasta 132.167.0.63 ¿Por qué es así?

Como comenzamos por la primera red, los bits de identificación de subred arrancan contando en binario desde 0.

En decimal:                       132.167.0.0

En binario:      10000100 10100111 00000000 00000000

hasta

En decimal:                       132.167.0.63

En binario:      10000100 10100111 00000000 00111111

La primera IP por convención, se reserva siempre a la puerta de enlace (Gateway), y la última como IP de difusión (Broadcasting), reduciendo estas 64 direcciones posibles a 62. Así quedando un rango que parte de 132.167.0.1 hasta 132.167.0.62 de IP disponibles para asignar a dispositivos que se quieran agregar a la red.

El segundo bloque: 132.167.0.64/22

Ahora pasamos a la segunda red, esta va a tener un rango posible de 132.167.0.64 a 132.167.0.127, nótese que partimos por la consiguiente dirección a la de la IP de difusión de la anterior subred.

En decimal:                       132.167.0.64

En binario:      11111111 11111111 11111100 01000000

hasta

En decimal:                       132.167.0.64

En binario:      11111111 11111111 11111100 01111111

Se incrementa el conteo de identificadores de subred a 1.

Como la cantidad de hosts es equitativa en todas las subredes,  64 posibles direcciones, de las cuales se reservan las mencionadas anteriormente quedando 62. Así quedando un rango de 132.167.0.65 a 132.167.0.126.

Y así con la subred 132.167.128/22, luego con la 132.167.192/22 hasta completar las 16 redes y agotar la cantidad de subredes posibles.

 

ID DE LA SUBRED

IP DE PUERTA DE ENLACE

RANGO ASIGNABLE

IP DE DIFUSIÓN

1

132.167.0.0

    132.167.0.1   a 132.167.0.62

132.167.0.63

2

132.167.0.64

132.167.0.64 a 132.167.0.126

132.167.0.127

3

132.167.0.128

132.167.0.129 a 132.167.0.190

132.167.0.191

4

132.167.0.192

   132.167.0.193 a 132.167.0.254

     132.167.0.255


(Solo coloqué las primero 4 para demostrar el patrón que siguen).


Una pequeña muestra conceptual de como quedaría asignada nuestra red asignando un bloque de direcciones de los que calculamos.


Todo esto es una forma de comprender un poco el funcionamiento de CIDR, los cálculos binarios los realiza el Router por su cuenta y si necesitamos designar bloques de direcciones por suerte existen herramientas para simplificarnos la vida como calculadoras de subnetting, una muy recomendada: 
https://www.site24x7.com/es/tools/ipv4-subredes-calculadora.html .



Esto es todo, espero que les haya servido, este post es una forma de dar una idea del funcionamiento de la red a nivel de la tercera capa que es la más "practica" a la hora de estructurar redes. Es por eso que les animo a seguir investigando más a fondo las demás capas y sobre esta en especifico para aunar los conceptos y así tener una comprensión más completa sobre el funcionamiento de la red como tal. :-) Saludos!.



Algunas fuentes y links de interés:

Tablas de mascaras red de referencia: https://es.wikipedia.org/wiki/M%C3%A1scara_de_red#Tabla_de_m%C3%A1scaras_de_red

Simulador router: https://emulator.tp-link.com/TL-WDR3500/Index.htm

 Acerca de CIDR: https://es.wikipedia.org/wiki/Classless_Inter-Domain_Routing

 Mascara red: https://es.wikipedia.org/wiki/M%C3%A1scara_de_red

Mascara de subred: https://es.wikipedia.org/wiki/Subred

Mascara de subred variable:: https://es.wikipedia.org/wiki/M%C3%A1scaras_de_subred_de_tama%C3%B1o_variable

Principios de enrutamiento: https://sites.google.com/site/comdatosgrupo4/contenidos/cap4_conmutacion-enrutamiento#:~:text=El%20enrutamiento%20se%20entiende%20como,capa%203%20del%20modelo%20OSI

Ejercicios de encaminamiento: https://sites.google.com/site/redeslocalesyglobales/6-arquitecturas-de-redes/6-arquitectura-tcp-ip/9-encaminamiento-ip

tcp/ip history: https://www.garykessler.net/library/tcpip.html

https://superuser.com/questions/315352/what-is-the-difference-between-a-subnet-mask-and-a-netmask