e-Commerce, Systems Performance Evaluation, and Experimental Development Laboratory
Tecnologias WWWTecnologias WWWProtocolos e AplicaçõesProtocolos e Aplicações
Wagner Meira Jr.
e-speed
ProtocolosProtocolos
• Acordo sobre comunicação
• Especifica– Formato de mensagens– Significado de mensagens– Regras de intercâmbio– Procedimentos em caso de problemas
e-speed
Necessidade de ProtocolosNecessidade de Protocolos
• Hardware é baixo nível
• Vários problemas podem ocorrer– Dados corrompidos ou destruídos– Pacotes perdidos– Pacotes duplicados– Pacotes chegam fora de ordem
e-speed
Necessidade de Protocolos Necessidade de Protocolos (2)(2)
• 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
e-speed
Conjuntos de protocolosConjuntos de protocolos
• Cooperam
• Cada protocolo resolve parte do problema de comunicação
• Organizado em níveis
e-speed
Pilha de Protocolos OSIPilha de Protocolos OSI
• 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
e-speed
Pilha de Protocolos OSI (2)Pilha de Protocolos OSI (2)
• 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
e-speed
Níveis e Software de Níveis e Software de ProtocolosProtocolos
• 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
e-speed
Princípio da PilhaPrincípio da Pilha
• Software implementando nível N no destino recebe exatamente a mensagem enviada pelo software que implementa o nível N na fonte.
e-speed
Controle de FluxoControle de Fluxo
• Justificativa:– Taxa de envio maior que taxa de
recebimento– Aplicação emissora mais rápida que
aplicação receptora
• Relacionada a buffering
e-speed
Controle de FluxoControle de Fluxo ``Stop-and-Go’’ ``Stop-and-Go’’
• Emissor– Transmite um pacote– Espera o sinal do recipiente
• Reciptor– Recebe e processa o pacote– Sinaliza o emissor
• Ineficiente: Latência pode ser alta.
e-speed
Controle de Fluxo através deControle de Fluxo através deJanela DeslizanteJanela Deslizante
• 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
e-speed
CongestionamentoCongestionamento
• Problema fundamental em redes
• Causado por tráfego, não falha de hardware
• Análogo a congestionamentos em estradas
• Causa básica de atrasos
e-speed
Evitando CongestionamentosEvitando Congestionamentos
• 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
e-speed
Motivação para InternetMotivação para Internet
• LANs– Baixo custo– Cobertura limitada
• WANs– Alto custo– Cobertura ilimitada
e-speed
Heterogeneidade é inevitávelHeterogeneidade é inevitável
Nenhuma tecnologia de redes é a melhor para todas as necessidades.
e-speed
Serviços universaisServiços universais
• Conceito fundamental em redes
• Precursor: sistema de telefonia
• Pares arbitrários de computadores podem comunicar
• Desejável
• Difícil em um mundo heterogêneo
e-speed
Heterogeneidade e Heterogeneidade e Serviços UniversaisServiços Universais
• Incompatibilidades entre redes:– Propriedades elétricas– Sinalização– Codificação de dados– Formato de pacotes– Endereçamento
e-speed
ConsequênciaConsequê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.
e-speed
Uma InternetUma Internet
• Inicia com redes heterogêneas
• Conecta as redes físicas
• Implementa software que faz o sistema parecer homogêneo
e-speed
Conectando Redes Conectando Redes HeterogêneasHeterogêneas
• Sistema computacional– Dedicado– Especializado– Trabalha com LANs e WANs
• Exemplos– Roteadores– Gateways
e-speed
Arquitetura InternetArquitetura Internet
• Objetivos– Imperceptível– Uniforme– Propósito geral– Universal– Abstrato
e-speed
Abstraindo HeterogeneidadeAbstraindo Heterogeneidade
• Criar rede virtual
• Determine– Esquema de endereçamento– Esquema de assinalamento de nomes
• Implemente via software de protocolo tanto em máquinas quanto roteadores
e-speed
Protocolo InternetProtocolo Internet
• Aplicação
• Transporte
• Internet
• Interfaces de rede
• Físico
e-speed
Níveis TCP/IPNíveis TCP/IP
• 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.
e-speed
Níveis TCP/IPNíveis TCP/IP
• Nível 4: Transporte– Comunicação entre aplicações
• Nível 5: Aplicação– Restante...
e-speed
Internet Protocol (IP)Internet Protocol (IP)
• Único protocolo no nível 3
• Peça fundamental
• Define– Endereçamento– Formato de pacotes– Roteamento
e-speed
Endereçamento IPEndereçamento IP
• Abstração
• Independente do endereçamento de hardware
• Utilizado por– Protocolos de níveis superiores– Aplicações
e-speed
Endereço IPEndereço IP
• 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 IPMotivaçã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.
e-speed
Pacotes InternetPacotes Internet
• 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 RoteamentoTabelas de Roteamento
e-speed
Roteamento de DatagramasRoteamento de Datagramas
• 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 fundamentalConceito 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.
e-speed
Semântica IPSemântica IP
• IP é um protocolo sem conexão– Datagrama contem a identidade do destino– Cada datagrama é tratado
independentemente
• Rotas podem mudar a qualquer momento
e-speed
Semântica IPSemântica IP
• IP permite que datagramas sejam– atrasados– duplicados– perdidos– recebidos fora de ordem– perdidos
• Best effort delivery: acomodar os vários tipos de redes
e-speed
Resolvendo EndereçosResolvendo Endereços
• Hardware só reconhece endereços MAC
• IP utiliza apenas endereços IP
• Consequência:– Software deve executar tradução !!
e-speed
Resolvendo EndereçosResolvendo Endereços
• 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 ARPProtocolo ARP
e-speed
Protocolos de TransporteProtocolos de Transporte
• Nível separado da pilha de protocolos
• Conceitualmente entre:– Aplicação – IP
e-speed
Funcionalidades de Funcionalidades de Protocolos de TransporteProtocolos de Transporte
• Identifica aplicações que enviam e recebem
• Opcionalmente provê:– Confiabilidade– Controle de fluxo– Controle de congestionamento
e-speed
User Datagram Protocol User Datagram Protocol (UDP)(UDP)
• Envio não confiável
• Minimiza:– Overhead– Computação– Comunicação
• Ideal para aplicações LAN
e-speed
Detalhes UDPDetalhes UDP
• Interface orientada a mensagens: protocolo sem conexão
• Mensagem é encapsulada em um datagrama
• Cabeçalho UDP identifica:– Aplicação emissora– Aplicação receptora
e-speed
Identificando uma aplicaçãoIdentificando uma aplicação
• 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
e-speed
Identificando uma aplicaçãoIdentificando uma aplicação
• 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.
e-speed
Portas de protocoloPortas de protocolo
• 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
e-speed
Transmission Control Protocol Transmission Control Protocol (TCP)(TCP)
• Protocolo de transporte mais popular na Internet
• Transferência confiável.
e-speed
TCP: CaracterísticasTCP: Características
• 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 Relacionamento entre ProtocolosProtocolos
e-speed
Aplicações: FuncionalidadesAplicações: Funcionalidades
• Nível de transporte e abaixo:– Comunicação básica– Confiabilidade
• Nível de aplicação– Abstrações (arquivos, nomes)– Nomes
e-speedTarefasTarefas
• 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
e-speed
Modelo Cliente-ServidorModelo Cliente-Servidor
• Servidor:– É o primeiro a iniciar– Espera por conexões
• Cliente– Inicia execução posteriormente– Conecta-se ao servidor
e-speed
Características do ClienteCaracterísticas do Cliente
• 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
e-speed
Características do ServidorCaracterísticas do Servidor
• 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
e-speed
Identificando um ServiçoIdentificando um Serviço
• 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
e-speed
Portas: Uso teóricoPortas: Uso teórico
• Portas são apenas inteiros
• Qualquer servidor pode utilizar qualquer porta
e-speed
Portas: Uso PráticoPortas: Uso Prático
• 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
e-speed
Interface SocketInterface Socket
• Originalmente:– BSD Unix– Uso restrito a protocolos TCP/IP
• Atualmente:– Padrão de indústria– Disponível em vários sistemas
operacionais
e-speedSocketSocket
• Abstração do sistema operacional
• Criado dinamicamente
• Persiste apenas enquanto a aplicação executa
• Referenciado por um descritor
e-speed
Socket: Cliente-ServidorSocket: Cliente-Servidor
e-speedNomesNomes
• Comunicações Internet requerem IPs
• Nomes são preferíveis
• DNS: sistema automático para traduzir nomes para endereços
e-speed
Obtendo um nomeObtendo um nome
• 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
e-speed
Resolução de NomeResolução de Nome
• 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 DNSExemplo de Hierarquias DNS
e-speed
Replicação de NomesReplicação de Nomes
• 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
e-speed
Transferência de ArquivosTransferência de Arquivos
• 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
e-speed
Paradigma FTPParadigma FTP
• 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
e-speedHTTPHTTP
• Protocolo de transferência de dados ASCII
• Métodos– GET– HEAD– POST– DELETE– PUT
e-speedHTTPHTTP
• 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
e-speed
Requisição HTTPRequisição HTTP
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
e-speed
Resposta HTTPResposta HTTP
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: ArquiteturaApache: Arquitetura