Elementos e Protocolos da World Wide Web

De Aulas
Revisão de 09h58min de 24 de agosto de 2021 por Admin (discussão | contribs) (→‎SMTP)

Afluentes: Sistemas Distribuídos e Mobile

Aspectos elementares sobre a World Wide Web

"Conjunto de computadores autônomos interconectados por uma única tecnologia" — Tanenbaum (2003)[1].

"É uma rede de computadores mundial, isto é, uma rede que interconecta milhões de equipamentos de computação em todo o mundo" — Kurose 2006[2].

Leonard Kleinrock
1960 - Leonard Kleinrock publica o primeiro trabalho sobre comutação de pacotes
  • Durante sua pós-graduação no MIT (Instituto de Tecnologia de Massachusetts), ele desenvolveu uma teoria matemática de comutação de pacotes, dividindo os dados em pacotes que podem ser trocados por meio de uma rede. Dessa forma, vários usuários podem acessá-los em diferentes plataformas. A Internet foi baseada nessa tecnologia.
  • A Agência de Projetos de Pesquisa Avançada (ARPA, hoje DARPA), com interesse no projeto, buscou uma equipe para construir, instalar e gerenciar um projeto para usar esse novo tipo de rede. Engenheiros da computação da Bolt Beranek & Newman (BBN), construiram uma máquina chamada IPM (Processador de Mensagens de Interface), o primeiro roteador.
  • O primeiro nó de rede foi alocado na UCLA (University of California, Los Angeles), onde Kleinrock se tornou professor.
  • A equipe do projeto criou uma rede usando uma infraestrutura existente, as linhas telefônicas.
  • Em 29 de outubro de 1969, a equipe reunida no 3420 Boelter Hall tentou enviar a primeira mensagem ao Instituto de Pesquisa de Stanford: LOGIN. Eles conseguiram digitar as primeiras duas letras, mas o sistema caiu. Dessa forma, LO, foi a primeira mensagem enviada pela estrutura que se tornaria a Internet.
  • Uma hora depois, eles tentaram novamente e conseguiram.
  • Até dezembro de 1969, quatro nós foram instalados na UCLA, no Instituto de Pesquisa de Stanford, Universidade de Utah e Universidade da Califórnia em Santa Barbara. Em 1975, já havia 57 IMPs e em 1981, eram 213.


Tplnote Bulbgraph.png

Segundo Kleinrock, na época "nós não sabíamos o que estávamos fazendo. Nós nem sequer tiramos uma foto.", o jornal da faculdade publicou uma notinha, mas passou despercebido.

Sala do projeto na UCLA
  • Em 1970 surgiram de novas redes de comutação de pacotes: ALOHANET; Telnet; Redes SNA da IBM;
  • Entre 1980 e 1990, aproximadamente 200 máquinas estavam conectadas à ARPAnet;
  • E na década de 1990 ocorreu a popularização da internet.

Componentes

  • Hospedeiros ou sistemas Finais são os equipamentos de computação conectados;
  • Enlaces são os links de comunicação entre os sistemas finais são conectados entre si;
  • Comutadores de pacotes encaminham a informação que chega a um de seus enlaces de entrada para um de saída. Ex: roteadores;
  • Provedores de Serviçoes de Internet (Internet Service Providers - ISPs) são os responsáveis por prover o acesso dos sistemas comptutaciconais à internet;

Camadas de Protocolos

Camadas de rede[3]
  • Camada de Aplicação: inclui as aplicações de rede (navegador, aplicativo de e-mail, etc.) e seus protocolos (HTTP, SMTP, FTP, etc.).
  • Camada de Transporte: transporta mensagens da camada de aplicação entre cliente e servidor de uma aplicação. Inclui os protocolos TCP e UDP;
  • Camada de Rede: responsável pela movimentação dos pacotes (ou datagramas) de dados de uma máquina para outra e converte os endereços lógicos em endereços físicos.
  • Camada de Enlace: roteia um datagrama por meio de roteadores entre a origem e o destino. Transforma os datagramas em quadros, com informações dos endereços físicos, para serem trafegados pela internet.
  • Camada Física: movimenta os bits individuais que estão dentro dos quadros de um nó para o seguinte. Os bits são transformados em sinais compatíveis com o meio onde os dados são transmitidos.
Camadas de rede

Internet

  • Entrega sem conexão
  • Pacotes chamados de datagramas
  • Mecanismo global de endereçamento: Endereços IP
  • Roteamento de datagramas para hosts remotos
  • Move os dados entre as camadas Interface de Rede e Transporte
  • Transporte
    • Comunicação fim-a-fim
    • Dois protocolos:
      • UDP: rápido, não robusto, leve, sem conexão
      • TCP: confiável, com conexão, controle de fluxo
  • Serviços de Aplicação conhecidos:
    • Login remoto (telnet)
    • Transferência de arquivos (FTP)
    • Transferência de documentos de hipermídia (HTTP)
    • Correio eletrônico (SMTP)
    • Nomes de hosts a endereços IP (DNS)
    • Gerenciamento (SNMP)
    • Sistema de arquivos (NFS)

Protocolos

  • Todos os padrões da internet são desenvolvidos pela Força de Trabalho de Engenharia de Internet (Internet Engineering Task Force - IETF);
  • Os documentos padronizados IETF são denominados RFCs (Request for Comments - Pedido de Comentários);
  • Os RFCs definem protocolos como TCP, IP, HTTP (para WEB) e SMTP.
  • Os protocolos são regras que definem o formato, ordem das mensagens enviadas e recebidas pelas entidades da rede; e ações tomadas quando da transmissão ou recepção de mensagens. Eles controlam o envio e recebimento de mensagens (TCP, IP, HTTP, FTP, etc.).

DNS

  • Domain Name System, ou sistema de nomes de domínios
  • Sistema hierárquico e distribuído para organizar os nomes dos computadores, serviços ou máquina conectada à internet ou rede privada
  • Associa nomes a endereços IP numéricos para facilitar a memorização (resolução de nomes)
  • O IP é o real endereço do dispositivo na rede
  • O aumento do número de servidores não degrada substancialmente o desempenho
  • O DNS usa o UDP (User Datagram Protocol) na porta 53 para servir solicitações e requisições
  • Arquitetura cliente-servidor e pode envolver vários servidores DNS na resposta de uma consulta.
  • O serviço é normalmente implementado pelo software BIND, que encontra-se no servidor DNS primário
  • O DNS secundário é um backup do primário para reestabelecer uma rota alternativa, caso o primeiro caia.


Tplnote Bulbgraph.png

Existem centenas de servidores-raiz DNS (root servers) no mundo todo, agrupados em 13 zonas DNS raiz,[6] das quais sem elas a Internet não funcionaria. Destes, dez estão localizados nos Estados Unidos da América, dois na Europa e um na Ásia. Para aumentar a base instalada destes servidores foram criadas réplicas localizadas por todo o mundo, inclusive no Brasil desde 2003.

Hierarquia

  • Necessário ter uma organização distribuída e escalável devido ao tamanho da Internet
  • Motivo:
    • Disponibilidade: se tivesse um único servidor e falhasse, o serviço seria interrompido para o mundo todo
    • Volume de tráfego: evita que apenas um servidor tenha que tratar de todos os pedidos, o que seria inviável
    • Distância: deixa os clientes mais próximos de algum servidor que responda mais rapidamente a requisição
    • Manutenção do banco de dados: apenas um banco de dados seria muito grande e precisaria atualizar muito frequentemente os dados.

Estrutura

A estrutura hierárquica dos servidores DNS se dividem em três categorias: Servidores-raiz, Servidores de domínio de topo e Servidores com autoridade.

Servidores-raiz
  • 13 servidores raiz
  • Um servidor-raiz (root name server') é um servidor de nome para a zona raiz do DNS e responde diretamente às requisições de registros da zona raiz, retornando a lista dos servidores de nomes designados para o domínio do topo apropriado
  • Estão no primeiro passo para resolverr os nomes para endereços IP para a comunicação entre os hosts
Servidores de domínio de topo (top-level domain)
  • Os domínios são formados por nomes separados por pontos
  • O nome mais a direita é o domínio de topo (.com, .org, .net, .gov, .edu, etc.)
  • Um servidor de domínio de topo conhece os endereços dos seridores autoritativos que pertencem àquele domnínio de topo
  • Existem as terminaçãoes orientadas a países, como .br, .ar, .fr e com combinações .com.br, .edu.br, etc. (Country Code Top Level Domains)
Servidores com autoridade
  • Possui registros originais que associam um domínio ao seu endereço IP
  • Quando um domínio adquire um novo endereço, as informações deve ser adicionadas a pelo menos dois servidores autoritativos (principal e secundário)

Funcionamento

O diagrama a seguir disponibiliza uma visão geral sobre como os serviços DNS recursivos e autoritativos funcionam em conjunto para direcionar um usuário final para o seu website ou a sua aplicação[4].

Direcionamento do Tráfego DNS para uma aplicação Web.

1. Um usuário abre um navegador, digita www.exemplo.com na barra de endereços e aperta Enter.

2. A solicitação de www.exemplo.com é direcionada para um resolvedor DNS, que geralmente é gerenciado pelo ISP (Internet service provider – Provedor de serviços de internet) do usuário, como um provedor de internet a cabo, um provedor de banda larga DSL ou uma rede corporativa.

3. O resolvedor DNS do ISP encaminha a solicitação, que sai de www.exemplo.com e passa para um serviço de nome raiz DNS.

4. O resolvedor DNS do ISP encaminha novamente a solicitação de www.exemplo.com, mas desta vez para um dos servidores de nome TLD de domínios .com. O servidor de nome dos domínios .com responde a solicitação com os nomes dos quatro servidores de nome do Amazon Route 53 que estão associados ao domínio exemplo.com.

5. O resolvedor DNS do ISP escolhe um servidor de nome do Amazon Route 53 e encaminha a solicitação de www.exemplo.com para o servidor de nome em questão.

6. O servidor de nome do Amazon Route 53 procura na hosted zone exemplo.com pelo registro de www.exemplo.com, obtém o valor associado, como o endereço IP de um servidor web (192.0.2.44) e retorna o endereço IP ao resolvedor DNS.

7. Por fim, o resolvedor DNS do ISP obtém o endereço IP de que o usuário precisa. O resolvedor retorna este valor para o navegador. O resolvedor DNS também armazenará em cache o endereço IP de exemplo.com durante um período que você especificará para que ele possa responder mais rapidamente da próxima vez que alguém pesquisar por exemplo.com. Para obter mais informações, consulte a TTL (time to live – vida útil).

8. O navegador enviará uma solicitação de www.exemplo.com para o endereço IP que obteve do resolvedor DNS. O seu conteúdo poderá ser encontrado lá. Por exemplo, um servidor web em execução em uma instância do Amazon EC2 ou um bucket do Amazon S3 que seja configurado como um endpoint do website.

9.O servidor web ou outro recurso em 192.0.2.44 retornará a página web de www.exemplo.com para o navegador que, por sua vez, exibirá a página.

SMTP

  • Simple Mail Transfer Protocol ou Protocolo de Transferência de Correio Simples
  • Protocolo padrão de envio de mensagens de e-mail
  • Sintaxe simples de texto
  • Destinado a um ou mais destinatários
  • Porta padrão 25 e 465 encriptografadas (SSL). Pode-se usar a porta 587 como alternativa

Exemplo

  1. É estabelecida uma conexão entre o cliente e o servidor (emissor e receptor)
  2. Inicia a comunicação (C cliente e S servidor)
C: MAIL FROM:<gendo@nerv.com.jp>
S: 250 OK
C: RCPT TO:<shinji@unit01.com.jp>
S: 250 OK
C: RCPT TO:<touji@unit01.com.jp>
S: 550 No such user here
C: RCPT TO:<asuka@unit02.com.jp>
S: 250 OK
C: DATA
S: 354 Start mail input; end with <CRLF>.<CRLF>
C: Entrem nesses malditos robos
C: e vão lá fora defender Tokyo 2
C: <CRLF>.<CRLF>
S: 250 OK


Tplnote Bulbgraph.png

Os clientes podem verificar no servidor sobre quais as extensões SMTP são suportadas com o comando EHLO (diferente de HELO ilustrado acima), e o corpo da mensagem (depois de DATA) segue tipicamente em formato MIME.

POP3

FTP

Muito antes dos sistemas de armazenamento em nuvem, nasceu o FTP (File Transfer Protocol). Desde os primórdios da Internet, ele é o responsável por enviar arquivos para a web. Forma prática e versátil de transferência de arquivos, ela serve basicamente para que usuários possam enviar ou receber documentos da Grande Rede por meio de um endereço no navegador ou um software instalado no PC.

A transferência é feita entre um servidor e um cliente. O primeiro é o local onde os arquivos ficam hospedados, enquanto o segundo é quem realiza a operação. A conexão é sempre autenticada por um nome de usuário e servidor em um determinado endereço de IP. Normalmente, o FTP é bastante útil para pessoas que possuem discos virtuais na rede e para quem criou um site e tem um sistema de hospedagem.

É possível criar um FTP em uma máquina ou ter acesso a algum disco já criado e que tenha sido compartilhado com você. Para criar, é preciso usar um programa como o Guild FTP. O procedimento é simples e não leva mais do que alguns passos. Caso você necessite apenas acessar um servidor de FTP existente, há a possibilidade de fazê-lo via software, mas também somente acessando a Internet.

HTTP

  • Hypertext Transfer Protocol
  • Protocolo cliente-servidor: requisições iniciadas pelo destinatário (navegador web)
    • Um computador cliente envia ao servidor uma requisição HTTP para um servidor usando um aplicativo (navegador web)
    • O servidor fornece os recursos, tais como documentos HTML e outros conteúdos e retorna uma resposta ao cliente.
  • Protocolo de comunicação utilizado para sistemas de informação de hipermídia, distribuídos e colaborativos
  • É a base para a comunicação de dados da World Wide Web

SSH

Referências

  1. TANENBAUM, Andrew S. Redes de Computadores. Tradução da 4rd. Ed. em inglês. Editora Campus. 2003.
  2. KUROSE, James F.; ROSS, Keith W. Redes de Computadores e a Internet: uma abordagem top-down. 3. ed. São Paulo: Person Addison Wesley, Brasil, 2006
  3. https://materialpublic.imd.ufrn.br/curso/disciplina/4/19/6/9
  4. https://aws.amazon.com/pt/route53/what-is-dns/