Resumo Redes de Computadores e a Internet Capítulo 2 Kurose
2.1 Princípios de aplicações de rede
Exemplos de aplicações de rede: correio eletrônico, a Web, mensagem instantânea, login em computador remoto como Telnet e SSH, compartilhamento de arquivos P2P, transferência de arquivos, etc.
O cerne do desenvolvimento de aplicação de rede é escrever programas que rodem em sistemas finais diferentes e se comuniquem entre si pela rede. Por exemplo, a na Web há dois programas distintos que se comunicam, o programa do browser (roda na máquina do usuário) e o programa servidor Web (roda na máquina do servidor Web).
2.1.1 Arquiteturas de aplicação de rede:
A arquitetura da aplicação determina como a aplicação é organizada nos vários sistemas finais.
Em uma arquitetura cliente-servidor há um hospedeiro sempre em funcionamento, denominado servidor, que atende a requisições de muitos outros hospedeiros, denominados clientes, estes podem estar em funcionamento às vezes ou sempre. Os clientes não se comunicam diretamente uns com os outros. O servidor tem um endereço fixo, denominado endereço de IP, o cliente sempre pode contatá-lo, enviando um pacote ao endereço do servidor. Em aplicações cliente-servidor, muitas vezes acontece de um único hospedeiro servidor ser incapaz de atender a todas as requisições de seus clientes, por essa razão, muitas vezes são utilizados conjuntos de hospedeiros (server farm) para criar servidor virtual poderoso em arquiteturas cliente-servidor.
Em uma arquitetura P2P pura, não há um servidor sempre funcionando no centro da aplicação, em vez disso pares arbitrários de hospedeiros comunicam-se diretamente entre si. Como os pares se comunicam sem passar por nenhum servidor especial, a arquitetura é denominada peer-to-peer, onde nela nenhuma das máquinas participantes precisa estar sempre em funcionamento. Um de suas características mais fortes é a escalabilidade, onde cada par adicional não apenas aumenta a demanda, mas também a capacidade de serviço. Por outro