¿Por qué una página solicitada por un navegador no se entrega a otro?

Cada solicitud del navegador pertenece a un socket TCP / IP. El sistema operativo rastrea qué zócalos pertenecen a qué programas y transfiere los datos en consecuencia.

Un socket TCP / IP abierto tiene una dirección IP local, número de puerto local, dirección IP remota y número de puerto remoto. Para múltiples conexiones HTTP al mismo sitio, la dirección remota y el número de puerto serán los mismos. Lo más probable es que la IP local también sea la misma (aunque una máquina puede tener más de una IP, normalmente la más cercana se usa para conectarse a un destino determinado). Esto deja el puerto local. Los puertos locales se asignan aleatoriamente al crear el socket. Entonces, si bien dos navegadores diferentes que se ejecutan en la misma computadora y hablan con el mismo sitio web tendrán la misma IP remota, puerto remoto e IP local, tendrán diferentes puertos locales . Esto es lo que usará el sistema operativo para diferenciar los dos navegadores.

Teóricamente, los números de puerto TCP 65536 (2 ^ 16) se pueden usar a ambos lados de un socket. Algunos, como el puerto 0, están reservados, pero se entiende la idea. Por lo tanto, se pueden abrir hasta 65536 conexiones simultáneas de una computadora a una IP y puerto sin quedarse sin puertos locales. Sin embargo, este no es un límite de 65536 conexiones HTTP simultáneas a diferentes IP. Considere los siguientes dos enchufes:
IP local 192.168.1.100, puerto local 1024, IP remota 8.8.8.8 , puerto remoto 80
IP local 192.168.1.100, puerto local 1024, IP remota 8.8.4.4 , puerto remoto 80

Las dos tomas aún difieren según la IP remota, y el sistema operativo puede mantener el tráfico separado usando eso.

Referencia:
http://en.wikipedia.org/wiki/Int…