Tecnologias WWW Protocolos e Aplicações Wagner Meira Jr. e-Commerce, Systems Performance Evaluation, and Experimental Development Laboratory Protocolos e-speed • Acordo sobre comunicação • Especifica – Formato de mensagens – Significado de mensagens – Regras de intercâmbio – Procedimentos em caso de problemas Necessidade de Protocolos e-speed • Hardware é baixo nível • Vários problemas podem ocorrer – Dados corrompidos ou destruídos – Pacotes perdidos – Pacotes duplicados – Pacotes chegam fora de ordem Necessidade de Protocolos (2) e-speed • Necessidade de um mecanismo para distinguir entre: – Vários computadores na rede – Várias aplicações em um computador – Várias cópias de uma aplicação em um computador Conjuntos de protocolos e-speed • Cooperam • Cada protocolo resolve parte do problema de comunicação • Organizado em níveis Pilha de Protocolos OSI e-speed • Nível 1: Físico – Plataforma hardware • Nível 2: Enlace – Quadros de hardware • Nível 3: Rede – Envio de pacotes • Nível 4: Transporte – Confiabilidade Pilha de Protocolos OSI (2) e-speed • Nível 5: Sessão – Login e senhas • Nível 6: Apresentação – Representação de dados • Nível 7: Aplicação – Programa de aplicação individual Níveis e Software de Protocolos e-speed • Software de protocolos segue o modelo de níveis – Um módulo de software por nível – Módulos cooperam – Fluxo de dados passa de um módulo para outro • Conjunto de módulos é conhecido como pilha Princípio da Pilha e-speed • Software implementando nível N no destino recebe exatamente a mensagem enviada pelo software que implementa o nível N na fonte. Controle de Fluxo e-speed • Justificativa: – Taxa de envio maior que taxa de recebimento – Aplicação emissora mais rápida que aplicação receptora • Relacionada a buffering Controle de Fluxo ``Stop-and-Go’’ e-speed • Emissor – Transmite um pacote – Espera o sinal do recipiente • Reciptor – Recebe e processa o pacote – Sinaliza o emissor • Ineficiente: Latência pode ser alta. Controle de Fluxo através de Janela Deslizante e-speed • Receptor: – Disponibiliza múltiplos buffers e avisa emissor • Emissor: – Transmite pacotes para todos os buffers – Apenas espera se não houver sinalização após a transmissão ser completada • Receptor: – Sinaliza à medida que pacotes chegam Congestionamento e-speed • Problema fundamental em redes • Causado por tráfego, não falha de hardware • Análogo a congestionamentos em estradas • Causa básica de atrasos Evitando Congestionamentos e-speed • Controle de taxa – Restringir taxa de transmissão • do computador emissor • da rede • Controle de taxa de rede – Monitorar tráfego de entrada – Descartar pacotes acima da taxa aceita – Traffic shaping Motivação para Internet e-speed • LANs – Baixo custo – Cobertura limitada • WANs – Alto custo – Cobertura ilimitada Heterogeneidade é inevitável e-speed Nenhuma tecnologia de redes é a melhor para todas as necessidades. Serviços universais e-speed • Conceito fundamental em redes • Precursor: sistema de telefonia • Pares arbitrários de computadores podem comunicar • Desejável • Difícil em um mundo heterogêneo Heterogeneidade e Serviços Universais e-speed • Incompatibilidades entre redes: – Propriedades elétricas – Sinalização – Codificação de dados – Formato de pacotes – Endereçamento e-speed Consequência Embora serviços universais sejam desejáveis, incompatibilidades entre o hardware de rede e enderaçamento físico impedem uma organização de construir uma rede que inclua tecnologias arbitrárias. Uma Internet e-speed • Inicia com redes heterogêneas • Conecta as redes físicas • Implementa software que faz o sistema parecer homogêneo Conectando Redes Heterogêneas e-speed • Sistema computacional – Dedicado – Especializado – Trabalha com LANs e WANs • Exemplos – Roteadores – Gateways Arquitetura Internet e-speed • Objetivos – Imperceptível – Uniforme – Propósito geral – Universal – Abstrato Abstraindo Heterogeneidade e-speed • Criar rede virtual • Determine – Esquema de endereçamento – Esquema de assinalamento de nomes • Implemente via software de protocolo tanto em máquinas quanto roteadores Protocolo Internet e-speed • • • • • Aplicação Transporte Internet Interfaces de rede Físico Níveis TCP/IP e-speed • Nível 1: Físico – Hardware de rede • Nível 2: Interface de Rede – Formato de quadro MAC – Endereçamento MAC – Interface entre o computador e a rede • Nível 3: Internet – Facilita enviar pacotes por caminhos que passam por múltiplos roteadores. Níveis TCP/IP e-speed • Nível 4: Transporte – Comunicação entre aplicações • Nível 5: Aplicação – Restante... Internet Protocol (IP) e-speed • Único protocolo no nível 3 • Peça fundamental • Define – Endereçamento – Formato de pacotes – Roteamento Endereçamento IP e-speed • Abstração • Independente do endereçamento de hardware • Utilizado por – Protocolos de níveis superiores – Aplicações Endereço IP e-speed • Virtual: apenas significativo para software • Usado para toda a comunicação • Inteiro de 32 bits • Valor único para cada máquina e-speed Motivação para pacotes IP Uma vez que ele pode conectar redes heterogêneas, um roteador não pode transmitir uma cópia do quadro que chega de uma rede através da outra. Para acomodar a heterogeneidade, uma Internet deve definir um formato de pacote independente de hardware. Pacotes Internet e-speed • Abstração • Criados e interpretados apenas por software • Contem endereços de origem e destino • Tamanho depende dos dados sendo transmitidos • Chamado de datagrama IP e-speed Tabelas de Roteamento Roteamento de Datagramas e-speed • • • • Extrair o endereço de destino D Verificar D na tabela de roteamento Determinar próximo destino N Enviar datagrama para N e-speed Conceito fundamental O endereço de destino de um datagrama sempre se refere ao destino final. Quando um roteador envia o pacote para outro roteador, o endereço dos roteadores não consta do pacote. Semântica IP e-speed • IP é um protocolo sem conexão – Datagrama contem a identidade do destino – Cada datagrama é tratado independentemente • Rotas podem mudar a qualquer momento Semântica IP e-speed • IP permite que datagramas sejam – atrasados – duplicados – perdidos – recebidos fora de ordem – perdidos • Best effort delivery: acomodar os vários tipos de redes Resolvendo Endereços e-speed • Hardware só reconhece endereços MAC • IP utiliza apenas endereços IP • Consequência: – Software deve executar tradução !! Resolvendo Endereços e-speed • Protocolo nível 2 • Dados: – Uma rede N – Um endereço IP C de uma máquina em N • Encontrar o endereço MAC de C • Técnica: Protocolo ARP e-speed Protocolo ARP Protocolos de Transporte e-speed • Nível separado da pilha de protocolos • Conceitualmente entre: – Aplicação – IP Funcionalidades de Protocolos de Transporte e-speed • Identifica aplicações que enviam e recebem • Opcionalmente provê: – Confiabilidade – Controle de fluxo – Controle de congestionamento User Datagram Protocol (UDP) e-speed • Envio não confiável • Minimiza: – Overhead – Computação – Comunicação • Ideal para aplicações LAN Detalhes UDP e-speed • Interface orientada a mensagens: protocolo sem conexão • Mensagem é encapsulada em um datagrama • Cabeçalho UDP identifica: – Aplicação emissora – Aplicação receptora Identificando uma aplicação e-speed • Não há como estender o endereço IP • Não pode utilizar recursos dependentes de sistema operacional: – Processo ID – Número de tarefa • Deve funcionar em todos os sistemas Identificando uma aplicação e-speed • Nova abstração: – Usada apenas com TCP/IP – Identifica emissor e receptor unicamente • Técnica: – Cada aplicação é associada a um inteiro único chamado porta. Portas de protocolo e-speed • Servidor – Segue padrão – Sempre usa o mesmo número de porta – Usa números de porta baixos • Cliente – Obtem portas livres do software de protocolo – Usa números de porta altos Transmission Control Protocol (TCP) e-speed • Protocolo de transporte mais popular na Internet • Transferência confiável. TCP: Características e-speed • • • • • • Serviço orientado à conexão Ponto-a-ponto Comunicação full duplex Interface Stream Segmentação Utiliza portas para identificar aplicações e-speed Relacionamento entre Protocolos Aplicações: Funcionalidades e-speed • Nível de transporte e abaixo: – Comunicação básica – Confiabilidade • Nível de aplicação – Abstrações (arquivos, nomes) – Nomes Tarefas e-speed • Rede – Transfere dados em resposta a uma requisição de aplicação • Aplicações – O que enviar – Quando enviar – Para onde enviar – Significado dos dados Modelo Cliente-Servidor e-speed • Servidor: – É o primeiro a iniciar – Espera por conexões • Cliente – Inicia execução posteriormente – Conecta-se ao servidor Características do Cliente e-speed • • • • • Aplicação arbitrária Atua como cliente de forma temporária Executa outras tarefas Executado pelo usuário Ativa a conexão com o servidor Características do Servidor e-speed • Programa privilegiado e altamente especializado • Dedicado a um serviço • Atende a múltiplos clientes • Executa de forma perene • Aceita conexões de clientes arbitrários Identificando um Serviço e-speed • Cada serviço é associado a uma única porta • Servidor – Informa SO da utilização de uma porta P – Espera requisições chegar • Cliente – Monta requisição – Envia requisição na porta P Portas: Uso teórico e-speed • Portas são apenas inteiros • Qualquer servidor pode utilizar qualquer porta Portas: Uso Prático e-speed • Números das portas são usados como identificadores de serviço • Demanda numeração uniforme: – Cliente sempre acessa serviço na mesma porta – Evita criação de diretórios • Números de porta – Uniformizados – Atribuídos por organismos reguladores Interface Socket e-speed • Originalmente: – BSD Unix – Uso restrito a protocolos TCP/IP • Atualmente: – Padrão de indústria – Disponível em vários sistemas operacionais Socket e-speed • Abstração do sistema operacional • Criado dinamicamente • Persiste apenas enquanto a aplicação executa • Referenciado por um descritor e-speed Socket: Cliente-Servidor Nomes e-speed • Comunicações Internet requerem IPs • Nomes são preferíveis • DNS: sistema automático para traduzir nomes para endereços Obtendo um nome e-speed • Organização – Escolhe o nome, que deve ser único – Registra o nome na autoridade central – Colocado sobre um domínio de primeiro nível • Restrições legais – Marcas registradas – Direitos autorais Resolução de Nome e-speed • Aplicação – Envia requisição para o servidor DNS • Servidor – Se sabe a resolução, responde – Se não sabe, envia a requisição para servidor imediatamente superior e-speed Exemplo de Hierarquias DNS Replicação de Nomes e-speed • Servidor sempre armazena as respostas • Cliente pode armazenar as respostas • Caching: – Melhora a eficiência – Elimina buscas desnecessárias – Trabalha bem baseado em localidade de referência Transferência de Arquivos e-speed • Cópia de arquivos completos • Protocolo: File Transfer Protocol (FTP) – Usa TCP – Transferências binárias ou texto – Até 1995 era a maior fonte de pacotes na Internet Paradigma FTP e-speed • Interface de linha de comando • Usuário: – Cria conexão de controle com servidor – Registra no servidor – Envia comandos de controle • Servidor – Estabelece uma conexão de dados por transferência HTTP e-speed • Protocolo de transferência de dados ASCII • Métodos – GET – HEAD – POST – DELETE – PUT HTTP e-speed • Não há noção de estado: requisições são independentes • Uma conexão TCP por requisição – HTTP/1.1 - Conexões persistentes • Códigos de erro estilo FTP Requisição HTTP e-speed GET /index.html HTTP/1.0 Accept: text/html If-modified-since: Sat, 29 Oct 1994 19:43:31 GMT Referrer: www.org/index.html Resposta HTTP e-speed HTTP/1.0 200 OK Date: Wed, 31 Jan 1996 20:45:17 GMT Server: NCSA/1.5 Content-type:text/html Content-language: en Last-Modified: Wed, 31 Jan 20:00:00 GMT <html> ..... </html> e-speed Apache: Arquitetura