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.
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.
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.
Sindicação
24/09/2009 @ 14:51:20
por xanokas
Ora aqui está uma temática que ...
22/09/2009 @ 21:23:09
por luis
Grande pensamento...
22/09/2009 @ 21:20:27
por luis
..Deveras enriquecedor para todos, uma temática ...
17/09/2009 @ 10:37:33
por xanokas
..Uma pessoa Responsável compromete-se com as ...
17/09/2009 @ 10:35:05
por xanokas