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
Download

Tecnologias WWW Protocolos e Aplicações