Okay, so I understand how subnet-masks are used to divide a network
into sub-networks, but my question is, why does every computer in the
network need to know the subnet-mask and not just the router?
bem, os dispositivos que as pessoas chamam de roteadores geralmente não são apenas roteadores. Portanto, as pessoas às vezes usam termos como NAPT Router, Home Router ou Consumer Router, para sugerir que não é puramente roteador. Para mostrar que eles não são apenas roteadores, esses dispositivos podem fazer o NAPT (que não é roteamento), e eles têm um switch embutido (um switch faz ponte, que não é roteamento - distinções entre um switch e uma ponte). são um pouco não tão bem definidos - pode-se dizer que uma bridge normalmente tem 2 portas e conecta diferentes meios de rede (por exemplo, ethernet e non-ethernet), enquanto um switch teria múltiplas portas e o mesmo meio de rede). Um switch faz ponte.
Se o switch fosse separado do "roteador", então, seria mais claro. Quando o endereço IP estiver na mesma rede, o pacote será direcionado para . o cabo para o que está próximo fisicamente, que é o switch, e é destinado a algum outro computador na rede (a menos que fosse um switch gerenciado e você estivesse conectando ao switch, por exemplo, telnet ou http e o switch tivesse seu próprio ip), e como o pacote não é destinado a outra rede, o pacote não alcançará o roteador. Quando ele é destinado a um computador em uma rede diferente, é claro que ele ainda vai para o switch, mas depois continua para o roteador, (o switch direcionou o pacote para o roteador e o endereço MAC de destino do pacote que vem para o switch teria sido o endereço MAC do roteador), e a rota o encaminharia para fora da interface correta do roteador.
Com essas coisas tipicamente chamadas de roteadores, que possuem switches dentro deles (como, não o estilo profissional de roteadores Cisco / Juniper), então o switch está dentro ... Mas é apenas a localização do switch .. Ainda é que quando o O IP está na mesma rede e o pacote é endereçado ao switch, não ao roteador. E vai apenas para o switch dentro do roteador e não alcança o roteador.
I could understand it, if each computer were physically connected to
each other with a wire,
o que você quer dizer aqui .. Se todos os computadores em uma rede inteira estivessem fisicamente conectados com um fio ... então eu acho que você não precisaria de um switch ou roteador. O que você está descrevendo soa um pouco como a ethernet original ... e se eles estão todos conectados com um fio, provavelmente não seria uma rede tão grande. E de qualquer forma não será um fio como você está acostumado. Ele teria computadores conectados ao longo do caminho com "toques". Então eu não sei porque você simplesmente jogou essa frase.
but all packets needs to go through the router anyway.
então você quer dizer deixar de lado a ideia de todos os computadores conectados a um fio sem roteador.
E não, mesmo em sua casa, eles não passam pelo roteador todas as vezes. Mesmo com o seu "roteador doméstico", chame-o de caixa de internet. Eles vão para o interruptor.
Lets say that I have a computer on a network
192.168.0.0/255.255.255.0, which have the IP 192.168.0.1.
If that computer try to reach a computer outside the sub-network, lets
say 192.168.1.1, it transmits the message to the router,
para o switch, em seguida, a partir do switch, ele vai para o roteador
the router identyfies that the IP is outside the sub-network IP-range, and rather than transmitting it on the sub-network, it transmits it to the network it is connected to (perhaps another router).
bem, o roteador identifica para qual interface de rede ele é. Ele envia de uma interface para outra interface. Uma distinção - além de qual interface, seria se uma rede está conectada diretamente ou não. Ele poderia enviar para um switch e depois para um computador. Ou pode enviar para um computador. Ou, se a rede não estiver diretamente conectada, ela será direcionada para outro roteador.
e sua última sentença foi
it transmits the message to the router,
e depois, de repente, você decidiu parar de escrever?
the router identyfies that the IP is outside the sub-network
IP-range, and rather than transmitting it on the sub-network, it
transmits it to the network it is connected to (perhaps another
router).
bem, eu não colocaria assim. Cada interface no roteador tem um intervalo de IPs diferente.
Mas, com seu roteador de consumidor ou roteador doméstico, o que acontece é que é como um roteador com duas interfaces, uma em seu lado com um switch conectado a ele. E as múltiplas portas são portas do switch.
Então, se você pensa em termos da parte do roteador, não é como se isso estivesse dentro da sub-rede e isso estivesse fora, porque há potencialmente muitas redes. Existe um em cada interface. E o roteador não estará transmitindo de volta para a mesma rede de onde veio. A razão pela qual chegou ao roteador em primeiro lugar é precisamente porque o switch (que atingiu primeiro), viu o endereço MAC e assim viu que não é o endereço MAC do roteador.
O computador que enviou o pacote, verificará se o IP de destino do pacote está em sua própria rede ou na mesma rede e, com base nisso, escolherá o endereço MAC relevante. O endereço MAC do computador para o qual está destinado (se o computador estiver na mesma rede). Ou (se o computador estiver em outra interface do roteador), então será o endereço MAC do roteador. Eu acho que poderia responder o título da sua pergunta de forma bem direta, por que o computador precisaria conhecer a máscara de sub-rede .. No sistema TCP / IP como é .. é assim que funciona, o computador escolhe a camada relevante 2 endereço, por exemplo para ethernet, o endereço MAC.