terça-feira, 3 de novembro de 2009

[info]Como é que o meu MSN comunica com o teu?

Porque é que quando escrevo no meu MSN, a conversa vai parar à tua janela do MSN e não a outra?

Certamente já se questionaram como comunicam duas aplicações, como comunicam dois computadores e como comunicam duas aplicações entre dois computadores. Durante este fim de semana colocaram-me essa questão e deixo aqui um artigo para partilhar com vocês a resposta. A explicação não entrará em detalhes por forma a que todos entendam.

Communication Information

Vou dar como exemplo o MSN

Considerando que existem 2 (ou mais) computadores e que têm instalado o MSN. Num computador está o António (IP: 192.168.10.1) e no outro o João (IP: 192.168.10.2) e estão em conversação.

A questão que se coloca é:

  • Como é que as conversas entre eles vão parar às janelas correctas em cada máquina?

Nisto da comunicação de computadores há 2 coisas que devemos saber: endereço IP (que identifica univocamente uma máquina) e o porto ou porta (que identifica a aplicação). A combinação do número do porto e do endereço IP identifica univocamente um processo a correr numa determinada máquina. Esta combinação tem o nome de socket.

Assim, o CHAT entre o António e o João pode ser estabelecido porque existe um IP para cada máquina e um porto para cada aplicação/janela. Algo do tipo:

192.168.10.1: 49201 <—–> 192.168.10.2: 49746

Onde:

192.168.10.1 – Computador do António 192.168.10.2 – Computador do João
49201 – Janela de MSN do António 49746 – Janela de MSN do João

Assim sendo, por cada aplicação/janela aberta na nossa máquina é atribuído dinamicamente um porto, e assim podemos comunicar com essa aplicação/janela um vez que o IP irá identificar a máquina e o porto essa janela . No caso de termos 5 janelas do msn abertas, por cada janela existe um porto associado, no entanto o IP da máquina é sempre o mesmo.

Que portos existem?

A IANA (Internet Assigned Numbers Authority) é um órgão responsável pela designação de vários padrões de endereçamento, incluindo os portos.

Existem diferentes tipos tipos de número de portos:

  • Portos conhecidos: 0 a 1023
  • Portos registado: 1024 a 49151
  • Portos atribuídos dinamicamente ou privados: 49152 a 65535
Como ver os portos no meu computador?

Normalmente costumo usar o comando netstat –ano, para verificar quais os processos de comunicação existentes.

02-11-2009 10-37-11

No entanto, já aqui falamos no pplware no CurrPorts que tem um aspecto gráfico mais interessante, sendo assim mais fácil identificar as aplicações:

02-11-2009 10-54-25

Considerando o nosso exemplo e a imagem anterior:

192.168.192.2 – Computador do António 207.46.125.77 – Computador do João
6015 – Janela de MSN do António 1863 – Janela de MSN do João

Nota: Este é apenas um exemplo de como comunicam as aplicações. No caso do MSN sabemos que existem servidores intermédios para gestão das sessões.

Sem comentários:

Enviar um comentário