Protocolos
Camada de aplicação
Nossos objetivos:
• Conceitual, aspectos de implementação de protocolos de aplicação de redes
• Modelos de serviço da camada de transporte
• Paradigma cliente-servidor
• Paradigma peer-to-peer
• Aprender examinando protocolos da camada de aplicação populares:
• HTTP
• FTP
• SMTP/POP3/IMAP
• DNS
• Programação de aplicações de rede
• Socket API
1
Algumas aplicações
•
•
Web
•
Mensagem instantânea
•
Login remoto
•
P2P file sharing
•
Jogos de rede multiusuário
•
Telefonia via Internet
•
Videoconferência em tempo real
Criando uma nova aplicação de rede
Escrever programas que
• Executem sobre diferentes sistemas finais e
• Se comuniquem através de uma rede.
• Ex.: Web – software de servidor Web se comunicando com software do browser Nenhum software é escrito para dispositivos no núcleo da rede
• Dispositivos do núcleo da rede não trabalham na camada de aplicação
• Esta estrutura permite um rápido desenvolvimento de aplicação
2
Arquiteturas de aplicação
• Cliente-servidor
• Peer-to-peer (P2P)
• Híbrida de cliente-servidor e P2P
Arquitetura cliente-servidor
Servidor:
• Hospedeiro sempre ativo
• Endereço IP permanente
• Fornece serviços solicitados pelo cliente
Clientes:
• Comunicam-se com o servidor
• Podem ser conectados intermitentemente • Podem ter endereço IP dinâmico
• Não se comunicam diretamente uns com os outros
3
Arquitetura P2P pura
• Nem sempre no servidor
• Sistemas finais arbitrários comunicam-se diretamente
• Pares são intermitentemente conectados e trocam endereços IP
• Ex.: Gnutella
Altamente escaláveis mas difíceis de gerenciar
Híbrida de cliente-servidor e P2P
Napster
• Transferência de arquivo P2P
• Busca centralizada de arquivos:
• Conteúdo de registro dos pares no servidor central
• Consulta de pares no mesmo servidor central para localizar o conteúdo
Instant messaging