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.
- ¿Cómo se realiza la conmutación de paquetes en la comunicación de fibra óptica y cómo se maneja el tráfico de paquetes?
- ¿Cómo funciona el servidor de chat de Facebook?
- ¿Cuál es el principal problema con la comunicación basada en la dirección MAC a través de Internet en lugar de la dirección IP?
- Si se recibe un paquete que no está destinado a esa subred, ¿a dónde será dirigido?
- Si tengo una dirección IPv6, ¿puedo visitar un servidor web que tenga una dirección IPv4?
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.