¿Qué libros o sitios web que enseñan sobre cómo resolver TCP e IP manualmente?

Sinceramente, no estoy seguro de cómo abordar esta pregunta. Por lo tanto, lo intentaré en la vieja universidad y espero que se mantenga.

“Resolver” TCP e IP no es un concepto que pueda visualizar en mi cabeza en este momento. Comencemos con algunos conceptos básicos y veamos si el OP tiene alguna pregunta aclaratoria.

Primero.

IP (Protocolo de Internet) es un protocolo que permite que una computadora / dispositivo en una red envíe mensajes destinados a una computadora / dispositivo en otra red. Si piensa en las direcciones en una metrópoli, la dirección IP de un dispositivo es algo así como la dirección de un edificio. Al igual que una dirección postal y un buen programa de GPS (casi) siempre lo llevarán al edificio, la dirección IP es todo lo que necesita para llegar a ese dispositivo.

Sin IP, su computadora solo podría comunicarse con otras computadoras en la misma “calle” (red). El Protocolo de Internet define una forma de ir por una calle diferente, a una “intersección” (enrutador) que conecta varias calles (redes).

Segundo.

TCP (Protocolo de control de transmisión): siguiendo la misma analogía, TCP tiene un “puerto” o “socket”, algo así como un número de habitación u oficina dentro del edificio. Si desea visitar una oficina o persona en particular en el edificio, entre al edificio y luego encuentre el camino a la habitación deseada. Del mismo modo, los programas en una computadora pueden “escuchar” las conexiones para “tocar la puerta” de la habitación que ocupan.

Volviendo a la tecnología … un servidor web, por ejemplo, normalmente escucha en el puerto TCP 80 (o, para HTTPS, el puerto TCP 443). Puede haber otros programas en la computadora que escuchan en otros puertos, y puede haber (¡casi siempre lo están!) Puertos que no escuchan en absoluto, algo así como un apartamento vacío: nadie está en casa.

El TCP en sí mismo es solo un mecanismo para comunicarse: puede transportar tipos de cargas útiles infinitamente diferentes.

Ahora, la parte difícil: “resolver”.

No estoy seguro de qué problema estás tratando de resolver: llevo más de 25 años trabajando en redes y, créeme, hay muchos problemas que resolver.

Supongamos que quiere comprender las subredes IP, que es un problema que puedo pensar que es digno de resolver … 🙂

Un enrutador residencial típico, por ejemplo, puede venir configurado con la dirección IP 192.168.1.1, y puede configurarse para distribuir direcciones IP a otras computadoras en un rango, por ejemplo 192.168.1.50 a 192.168.1.100. Si ha examinado la configuración, o está familiarizado con la configuración de TCP / IP, hay un campo llamado “máscara de red”; es esta configuración de ejemplo, esa máscara de red sería 255.255.255.0.

Una dirección IP se divide en dos partes: la red y el host. La máscara de red es cómo decidimos dónde dibujar la línea divisoria.

Para comprender correctamente cómo funciona la división en subredes, debe convertir la dirección y la máscara en binario. (suspiro.)

Binario no es el tema de esta respuesta; Hay otros recursos. Baste decir que, en caso de que elija aventurarse sin buscarlo, ese binario es el sistema de numeración de “base 2” donde los únicos dígitos válidos son 0 y 1, y cada dígito representa una potencia de dos, aumentando a la izquierda desde 2 ^ 0 a la derecha.

Una dirección IP consta de cuatro “octetos” o bytes, generalmente dados en cuatro números decimales, separados por puntos, cada uno con un rango de 0 a 255. Considere la dirección anterior, convertida a binario:

192 = 11000000

168 = 10101000

1 = 00000001

1 = 00000001

O,

11000000 10101000 00000001 00000001

La máscara de red, 255.255.255.0, se convierte en esto en binario:

11111111 11111111 11111111 00000000

Sin entrar en las matemáticas binarias sangrientas, con AND y OR y XOR, creo que probablemente estés comenzando a anticipar lo que está sucediendo aquí …

Los primeros 24 bits de esa máscara de red son todos 1, y los últimos 8 bits son todos 0.

En términos de red, decimos que esta es una “máscara de red de 24 bits”.

En términos simples: en este ejemplo, los primeros 24 bits de la dirección IP es el número de red. Los últimos 8 bits de la dirección IP es el número de host.

Si aplico esa lógica a la dirección original, obtengo:

Red: 192.168.1.0 (también escrita como 192.168.1.0/24, para indicar la longitud de la máscara)

Host: 0.0.0.1 (Los ceros no son realmente importantes; de hecho, a menos que esté haciendo algo de programación, el número de host tampoco es realmente importante … principalmente tratamos con números de red y direcciones IP completas).

Tome un segundo ejemplo más difícil:

Dirección IP: 158.9.252.230, con máscara de red 255.255.240.0

158 = 10011110

9 = 00001001

252 = 11111100

230 = 11100110

y la máscara de red, en resumen: 11111111 11111111 11110000 00000000

y el anfitrión, solo por valor educativo y sin valor práctico real:

00000000 00000000 00001100 11100110, o 0.0.12.230

Por lo tanto, necesitamos los primeros 20 bytes para la red y los últimos 12 bytes para el host. Por lo tanto, la red sería

10011110 00001001 11110000 00000000 = 158.9.240.0/20

Se dice que dos nodos que tienen el mismo número de red están en la misma subred. Los nodos dentro de la misma subred se comunican entre sí directamente, sin necesidad de un enrutador.

Por ejemplo:

Dado que el número de red para la red doméstica anterior es 192.168.1.0, y los últimos ocho bits se usan para el host, el rango de valores posibles para un nodo en esa red es 192.168.1.1, hasta 192.168.1.254.

(Para aquellos que prestan atención y tienen algún conocimiento de binario, pueden haber notado que en realidad hay dos valores posibles más: 0 y 255. Pero la primera y la última dirección dentro de una subred tienen un significado especial, y deben evitarse a menos que eres ingeniero de redes y sabes lo que estás haciendo).

Con el ejemplo más complicado, el rango de posibles nodos es 158.9.240.1 a 158.9.255.255, 16 veces más que la red residencial.

Curiosamente, el número de direcciones disponibles es igual a:

2 ^ (32 – (longitud de la máscara)) – 2

Para la red residencial, la longitud de la máscara era 24. Por lo tanto,

2 ^ (32-24) – 2 = 2 ^ 8 – 2 = 256 – 2 = 254 direcciones posibles

Para la red más grande, máscara de 20 bits:

2 ^ (32-20) – 2 = 2 ^ 12 – 2 = 4096 – 2 = 4094 direcciones posibles

Si una computadora en una red determina que necesita enviar un mensaje a otra computadora, pero esa computadora no tiene el mismo número de red, entonces la computadora de origen reenviará el paquete a un enrutador, cuyo trabajo es determinar la ruta correcta reenviar el paquete para que se acerque a su destino final (a través de otros enrutadores).

Entonces, si 192.168.1.50 quiere enviar un mensaje a 8.8.8.8, el creador se da cuenta de que los números de red no coinciden, y lo envía a un enrutador.

En la forma más simple, el enrutador se denomina “puerta de enlace predeterminada”, y es el lugar donde una computadora envía TODOS los paquetes que no sabe cómo entregar por sí mismo.

Los enrutadores usan tablas de rutas, generalmente llenas de una lista de subredes, para determinar a dónde debe ir el tráfico para el destino. Sin entrar en MÁS detalles sangrientos, generalmente hay una ruta en la tabla que se ajusta con mayor precisión a la dirección de destino; el enrutador usa esa información para reenviar el paquete, dejando el problema de la entrega de la última milla a otro enrutador.

IP abordando algo que me golpearon hace años. Las fórmulas son 2 ^ n-2 donde n es el número de bits en la máscara de subred resolverá el número de direcciones IP de host disponibles en la red dada. Resta dos para la dirección de red y la dirección de difusión, que son inusualmente como una dirección de host. La mayoría de las distribuciones de Linux le permitirán ingresar la máscara como dirección IP / n donde n es nuevamente el número de bits en la máscara. Tradicionalmente, la máscara se ingresa como un número de 4 octetos, como 255.255.255.0, que representa cuatro agrupaciones de 8 bits. Lo importante a recordar es que se trata de una máscara, por lo que un valor de 255 se puede tratar como cero o abierto y un valor de cero representa cerrado. La máscara de red básicamente determina qué parte de la dirección IP se asigna a la identificación de red y qué parte es para el host. Por lo tanto, una máscara de subred de 255.255.255.0 (o 24 bits) con una dirección IP de 192.168.1.1 le dirá a su máquina que puede comunicarse directamente con un host con el prefijo IP de 192.168.1.x y debe enrutarse a cualquier otra red habla a.

Sin embargo, para responder a su pregunta directamente, intente buscar en Google la fórmula de subred IP, encontrará muchos recursos buenos.