sábado, 19 de novembro de 2011

Redes - Como o TCP/IP usa a máscara de sub-rede

Galera,
            Hoje o contexto da dica é um conteúdo muito legal, pois exige que o aprendiz se dedique um pouco e que curta bastante matemática , para que os cálculos sejam feitos com perfeição.
Considere a figura a seguir, onde temos a representação de uma rede local, ligada a outras redes da empresa, através de um roteador.



Temos uma rede que usa como máscara de sub-rede 255.255.255.0 (uma rede classe C, mas ainda não abordamos as classes de redes). A rede é a 10.200.150.0, ou seja, todos os equipamentos da rede tem os três primeiras partes do número IP como sendo: 10.200.150. Veja que existe uma relação direta entre a máscara de sub-rede a quantas das partes do número IP são fixas, ou seja, que definem a rede.

A rede da figura anterior é uma rede das mais comumente encontradas hoje em dia, onde existe um roteador ligado à rede e o roteador está conectado a um Modem, através do qual é feita a conexão da rede local com a rede WAN da empresa, através de uma linha de dados (também conhecido como link de comunicação).

Como o TCP/IP usa a máscara de sub-rede e o roteador

Quando dois computadores tentam trocar informações em uma rede, o TCP/IP precisa, primeiro, determinar se os dois computadores pertencem a mesma rede ou a redes diferentes. Neste caso podemos ter duas situações distintas:

Situação 1: Os dois computadores pertencem a mesma rede: Neste caso o TCP/IP envia o pacote para o barramento local da rede. Todos os computadores recebem o pacote, mas somente o computador que é o destinatário do pacote é que o captura e passa para processamento pelo Windows e pelo programa de destino. Como é que o computador sabe se ele é ou não o destinatário do pacote? Muito simples, no pacote de informações está contido o endereço IP do computador destinatário. Em cada computador, o TCP/IP compara o IP de destinatário do pacote com o IP do computador, para saber se o pacote é ou não para o respectivo computador.

Situação 2: Os dois computadores não pertencem a mesma rede: Neste caso o TCP/IP envia o pacote para o Roteador (endereço do Default Gateway configurado nas propriedades do TCP/IP) e o Roteador se encarrega de fazer o pacote chegar ao seu destino. Em uma das partes deste tutorial veremos detalhes sobre como o Roteador é capaz de rotear pacotes de informações até redes distantes.

Agora a pergunta que tem a ver com este tópico:

“Como é que o TCP/IP faz para saber se o computador de origem e o computador de destino pertencem a mesma rede?”

Vamos usar alguns exemplos práticos para explicar como o TCP/IP faz isso:

Exemplo 1: Com base na figura anterior, suponha que o computador cujo IP é 10.200.150.5 (origem) queira enviar um pacote de informações para o computador cujo IP é 10.200.150.8 (destino), ambos com máscara de sub-rede igual a 255.255.255.0.

O primeiro passo é converter o número IP das duas máquinas e da máscara de sub-rede para binário. Com base nas regras que vimos anteriormente, teríamos a seguinte conversão:

Computador de origem:

10
200
150
5
00001010
11001000
10010110
00000101

Computador de destino:

10
200
150
8
00001010
11001000
10010110
00001000

Máscara de sub-rede:

255
255
255
0
11111111
11111111
11111111
00000000

Feitas as conversões para binário, vamos ver que tipo de cálculos o TCP/IP faz, para determinar se o computador de origem e o computador de destino estão na mesma rede.
Em primeiro lugar é feita uma operação “E”, bit a bit, entre o Número IP e a máscara de Sub-rede do computador de origem, conforme indicado na tabela a seguir:

10.200.150.5
00001010
11001000
10010110
00000101

E

255.255.255.0
11111111
11111111
11111111
00000000
10.200.150.0
00001010
11001000
10010110
00000000
Resultado

Agora é feita uma operação “E”, bit a bit, entre o Número IP e a máscara de sub-rede do computador de destino, conforme indicado na tabela a seguir:

10.200.150.8
00001010
11001000
10010110
00001000

E

255.255.255.0
11111111
11111111
11111111
00000000
10.200.150.0
00001010
11001000
10010110
00000000
Resultado

Agora o TCP/IP compara os resultados das duas operações. Se os dois resultados forem iguais, aos dois computadores, origem e destino, pertencem a mesma rede local. Neste caso o TCP/IP envia o pacote para o barramento da rede local. Todos os computadores recebem o pacote, mas somente o destinatário do pacote é que o captura e passa para processamento pelo Windows e pelo programa de destino. Como é que o computador sabe se ele é ou não o destinatário do pacote? Muito simples, no pacote de informações está contido o endereço IP do destinatário. Em cada computador, o TCP/IP compara o IP de destinatário do pacote com o IP do computador, para saber se o pacote é ou não para o respectivo computador.

É o que acontece neste exemplo, pois o resultado das duas operações “E” é igual: 10.200.150.0, ou seja, os dois computadores pertencem a rede: 10.200.150.0

Como você já deve ter adivinhado, agora vamos a um exemplo, onde os dois computadores não pertencem a mesma rede, pelo menos devido às configurações do TCP/IP.

Exemplo 2: Suponha que o computador cujo IP é 10.200.150.5 (origem) queira enviar um pacote de informações para o computador cujo IP é 10.204.150.8 (destino), ambos com máscara de sub-rede igual a 255.255.255.0.

O primeiro passo é converter o número IP das duas máquinas e da máscara de sub-rede para binário. Com base nas regras que vimos anteriormente, teríamos a seguinte conversão:

Computador de origem:

10
200
150
5
00001010
11001000
10010110
00000101

Computador de destino:

10
204
150
8
00001010
11001100
10010110
00001000

Máscara de sub-rede:

255
255
255
0
11111111
11111111
11111111
00000000

Feitas as conversões para binário, vamos ver que tipo de cálculos o TCP/IP faz, para determinar se o computador de origem e o computador de destino estão na mesma rede. Em primeiro lugar é feita uma operação “E”, bit a bit, entre o Número IP e a máscara de Sub-rede do computador de origem, conforme indicado na tabela a seguir:

10.200.150.5
00001010
11001000
10010110
00000101

E

255.255.255.0
11111111
11111111
11111111
00000000
10.200.150.0
00001010
11001000
10010110
00000000
Resultado

Agora é feita uma operação “E”, bit a bit, entre o Número IP e a máscara de sub-rede do computador de destino, conforme indicado na tabela a seguir:

10.204.150.8
00001010
11001100
10010110
00001000

E

255.255.255.0
11111111
11111111
11111111
00000000
10.204.150.0
00001010
11001100
10010110
00000000
Resultado

Agora o TCP/IP compara os resultados das duas operações. Neste exemplo, os dois resultados são diferentes: 10.200.150.0 e 10.204.150.0. Nesta situação o TCP/IP envia o pacote para o Roteador (endereço do Default Gateway configurado nas propriedades do TCP/IP) e o Roteador se encarrega de fazer o pacote chegar a rede do computador de destino. Em outras palavras o Roteador sabe entregar o pacote para a rede 10.204.150.0 ou sabe para quem enviar (um outro roteador), para que este próximo roteador possa encaminhar o pacote. Este processo continua até que o pacote seja entregue na rede de destino ou seja descartado, por não ter sido encontrada uma rota para a rede de destino.

Observe que, na figura anterior, temos dois computadores que, apesar de estarem fisicamente na mesma rede, não conseguirão se comunicar devido a um erro de configuração na máscara de sub-rede de um dos computadores. É o caso do computador 10.200.150.4 (com máscara de sub-rede 255.255.250.0). Como este computador está com uma máscara de sub-rede diferente dos demais computadores da rede (255.255.255.0), ao fazer os cálculos, o TCP/IP chega a conclusão que este computador pertence a uma rede diferente, o que faz com que ele não consiga se comunicar com os demais computadores da rede local.

Conclusão

Nesta dica foi apresentado aspectos relacionados com números binários e aritmética binária básica. Também foi mostrado como o protocolo TCP/IP usa os correspondentes binários do Número IP e da máscara de sub-rede, juntamente com uma operação “E”, para determinar se dois computadores estão na mesma rede ou não. Com base nestes cálculos, o TCP/IP encaminha os pacotes de informação de maneiras diferentes.

Espero ter ajudado e até a próxima dica !!!!!!!!!!!!!