Laboratório de Redes. Aula 04 - Principais Protocolos da Internet. Prof. Esp Camilo Brotas Ribeiro cribeiro@catolica-es.edu.br



Documentos relacionados
Redes de Computadores

O protocolo HTTP. Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP.

Arquitetura do Protocolo da Internet. Aula 05 - Protocolos de Roteamento. Prof. Esp. Camilo Brotas Ribeiro cribeiro@catolica-es.edu.

Redes de Computadores e a Internet

Resolução de Nomes e o protocolo DNS

Aula-28 Camada Aplicação - DNS. Prof. Dr. S. Motoyama

Camada de Transporte, protocolos TCP e UDP

O protocolo HTTP. O que é o protocolo HTTP?

Segurança de Redes de Computadores

REDES DE COMPUTADORES

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Interconexão de Redes. Aula 03 - Roteamento IP. Prof. Esp. Camilo Brotas Ribeiro cribeiro@catolica-es.edu.br

Redes de Computadores. Prof. Thiago Caproni Tavares DNS. Prof. Thiago Caproni Tavares

NOMEAÇÃO SISTEMAS DISTRIBUÍDOS: MSC. DANIELE C. OLIVEIRA 2

Regras de funcionamento (Unreliable Delivery, etc.) Método de roteamento (Sem conexão) Formato dos dados em um datagrama

DNS: Domain Name System

Redes de Computadores II

Camada de Transporte. Protocolos TCP e UDP

Redes de Computadores. Camada de Transporte

Sistemas Distribuídos Aula 9

DNS - Domain Name System

Sistemas Distribuídos Capítulos 5 e 6 - Aula 9

Curso: Tec. Em Sistemas Para Internet 1 semestre Redes de Computadores Memória de Aula 07. Prof. Moises P. Renjiffo

Aula-16 Interconexão de Redes IP (Internet Protocol) Prof. Dr. S. Motoyama

Redes de Computadores. Trabalho de Laboratório Nº7

Arquitetura TCP/IP. Parte VI Entrega de pacotes sem conexão (IP) Fabrízzio Alphonsus A. M. N. Soares

REDES DE COMPUTADORES

Interconexão de Redes Parte 2. Prof. Dr. S. Motoyama

Camada de rede. Camada de enlace. Meio Físico

Redes de Computadores Camada de Aplicação. Prof. MSc. Hugo Souza

Redes de computadores. Redes para Internet

Rede de Computadores (REC)

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Camada de transporte. Camada de transporte

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de Página

PROTOCOLOS DE COMUNICAÇÃO

Rede de Computadores

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

Redes de Computadores

Capítulo 7 CAMADA DE TRANSPORTE

Redes de Computadores

1. PRINCIPAIS PROTOCOLOS TCP/IP

REDES DE COMPUTADORES

Prof. Marcelo Cunha Parte 5

Teleprocessamento e Redes

Aula 6 Modelo de Divisão em Camadas TCP/IP

Redes de Computadores

Funcionamento de ARP entre redes (sub-redes) distintas. Mecanismos de entrega. Funcionamento entre redes (sub-redes): default gateway

Redes de Computadores. 1 Questões de múltipla escolha. TE090 - Prof. Pedroso. 17 de junho de 2015

Redes de Computadores

Aula 4. Pilha de Protocolos TCP/IP:

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Visão geral da arquitetura do roteador

Lab 4 Análise de Pacotes utilizando o TCPDUMP

Redes de computadores e a Internet. Capítulo 3. Camada de transporte

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Camada de Transporte TCP/IP e Aplicação

CAMADA DE TRANSPORTE

REDES DE COMPUTADORES II. Ricardo José Cabeça de Souza

Redes de Computadores. Arquitetura de Protocolos Profa. Priscila Solís Barreto

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

genérico proteção de rede filtragem dos pacotes Sem estado (stateless) no próprio pacote. Com estado (stateful) outros pacotes

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Redes de Computadores

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Fernando Albuquerque - fernando@cic.unb.br ADMINISTRAÇÃO TCP/IP. Fernando Albuquerque fernando@cic.unb.br

Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins

Redes e Conectividade

Redes. Pablo Rodriguez de Almeida Gross

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Segundo Bimestre

Redes de Computadores e a Internet

Informática I. Aula Aula 22-03/07/06 1

Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho

PEL/FEN Redes de Computadores 2015/1 Primeira Lista de Exercícios Prof. Marcelo Gonçalves Rubinstein

Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento. Associação dos Instrutores NetAcademy - Julho de Página


CCNA 2 Conceitos Básicos de Roteadores e Roteamento

Redes de Computadores

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

Equipamentos de rede. Repetidores. Repetidores. Prof. Leandro Pykosz

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Arquitetura de Redes: Camadas de Protocolos (Parte II)

Camada de Aplicação. Prof. Eduardo

MINISTÉRIO DA EDUCAÇÃO

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Introdução ao Protocolo TCP/IP. Prof. Gil Pinheiro UERJ/FEN/DETEL

Unidade 2.1 Modelos de Referência

CCNA 1 Conceitos Básicos de Redes. Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação

1 Redes de Computadores - TCP/IP Luiz Arthur

Endereçamento Privado Proxy e NAT. 2008, Edgard Jamhour

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Camada de Transporte. Prof. Leonardo Barreto Campos

Capítulo 1: Redes de computadores e a Internet. Capítulo1. Redes de. computadores. computador. e a Internet. es e a Internet

Transcrição:

Laboratório de Redes Aula 04 - Principais Protocolos da Internet Prof. Esp Camilo Brotas Ribeiro cribeiro@catolica-es.edu.br

Objetivo Conhecer os principais protocolos do TCP/IP (também conhecidos como protocolos da Internet) e as suas principais características; Estes formam o grupo de protocolos de comunicação que implementam a pilha de protocolos sobre a qual a Internet e a maioria das redes comerciais funcionam; São chamados de protocolos TCP/IP porque o protocolo TCP (Transmission Control Protocol) e o IP (Internet Protocol) foram os primeiros a serem definidos. Slide 2 de 133

A Pilha TCP/IP Slide 3 de 133

Visão Geral Slide 4 de 133

Camada de Rede Slide 5 de 133

Internet Protocol (RFC 791) Principal protocolo da camada internetwork (rede, internet, etc) Determina: datagrama IP estratégia de fragmentação e remontagem de datagramas IP esquema de endereçamento IP roteamento de datagramas IP Protocolo não orientado à conexão (connectionless) Protocolo não confiável (unreliable) Todas as camadas superiores usam IP Slide 6 de 133

Datagrama IP Slide 7 de 133

Datagrama IP Slide 8 de 133

Cabeçalho do Pacote IPv4 Slide 9 de 133

Slide 10 de 133 Cabeçalho do Pacote IPv4 Endereços IP de Destino: o endereço IP de destino contém um valor binário de 32 bits que representa o endereço do host de destino do pacote da camada 3; Endereço IP de Origem: o endereço IP de origem contém um valor binário de 32 bits que representa o endereço do host de origem do pacote da camada 3; Tipo de Serviço: o campo Tipo de Serviço contém um valor binário de 8 bits que é usado para determinar a prioridade de cada pacote. Este valor permite que um mecanismo de Qualidade de Serviço (QoS) seja aplicado aos pacotes com alta prioridade, como os que carregam dados de voz para telefonia. O roteador que processa os pacotes pode ser configurado para decidir qual pacote será encaminhado com base no valor do Tipo de Serviço;

Slide 11 de 133 Cabeçalho do Pacote IPv4 Tempo de Vida (TTL): é um valor binário de 8 bits que indica o "tempo de vida" restante do pacote. O valor TTL diminui em pelo menos um a cada vez que o pacote é processado por um roteador (ou seja, a cada salto). Quando o valor chega a zero, o roteador descarta ou abandona o pacote e ele é removido do fluxo de dados da rede. Este mecanismo evita que os pacotes que não conseguem chegar a seus destinos sejam encaminhados indefinidamente entre roteadores em um loop de roteamento;

Cabeçalho do Pacote IPv4 Protocolo: o valor binário de 8 bits indica o tipo de payload de dados que o pacote está carregando. O campo Protocolo possibilita que a camada de rede passe os dados para o protocolo apropriado das camadas superiores. Alguns exemplos de valores: 01 ICMP, 06 TCP, 17 UDP; Deslocamento de Fragmento: conforme mencionado anteriormente, um roteador pode precisar fragmentar um pacote ao encaminhá-lo de um meio físico para outro. Quando ocorre a fragmentação, o pacote IPv4 usa o campo Deslocamento de Fragmento e a flag MF no cabeçalho IP para reconstruir o pacote quando ele chega ao host de destino. O campo deslocamento de fragmento identifica a ordem na qual o fragmento do pacote deve ser colocado na reconstrução; Slide 12 de 133

Cabeçalho do Pacote IPv4 Slide 13 de 133

Cabeçalho do Pacote IPv4 Flag Mais Fragmentos: a flag Mais Fragmentos (MF) é um único bit no campo Flag usado com o Deslocamento de Fragmentos na fragmentação e reconstrução de pacotes; Flag Não Fragmentar: a flag Não Fragmentar (DF) é um único bit no campo Flag que indica que a fragmentação do pacote não é permitida. Se o bit da flag Não Fragmentar for configurado, a fragmentação do pacote NÃO será permitida. Se um roteador precisar fragmentar um pacote para permitir que ele passe para a camada de enlace de dados e o bit DF estiver definido como 1, o roteador descartará o pacote; Versão: contém o número da versão do IP. A versão mais comum atualmente é a 4. A 5 é uma versão experimental. 6 para IPv6; Slide 14 de 133

Cabeçalho do Pacote IPv4 Slide 15 de 133

Slide 16 de 133 Cabeçalho do Pacote IPv4 Comprimento do Cabeçalho (IHL): especifica o tamanho do cabeçalho do pacote. Comprimento do Pacote: este campo fornece o tamanho total do pacote em bytes, incluindo o cabeçalho e os dados. Mínimo de vinte bytes e o máximo de 64 Kb (65535 bytes); Identificação: este campo é usado principalmente para identificar unicamente os fragmentos de um pacote IP original; Checksum do Cabeçalho: o campo de checksum é usado para a verificação de erros no cabeçalho do pacote; Opções: há uma provisão para campos adicionais no cabeçalho IPv4 para oferecer outros serviços, mas eles raramente são utilizados.

Slide 17 de 133 Cabeçalho do Pacote IPv4 - Fragmentação Cada rede física determina um tamanho máximo de pacote (MTU); Maximum Transmission Unit, que em português significa Unidade Máxima de Transmissão, refere-se ao tamanho do maior datagrama que uma camada de um protocolo de comunicação pode transmitir; Quando um datagrama é comutado para uma rede com MTU menor que a original, ele sofre fragmentação; Cada fragmento é um datagrama IP: Identification, Fragmentation Offset e Flags

Slide 18 de 133 Cabeçalho do Pacote IPv4 - Fragmentação Cada fragmento (pacote) tem a mesma estrutura do datagrama; IP especifica que a remontagem do datagrama é feita no destinatário (não em hop-by-hop); Se qualquer fragmento é perdido o datagrama completo é descartado (uma mensagem ICMP é enviado ao emissor).

Cabeçalho do Pacote IPv4 - Fragmentação Slide 19 de 133

Cabeçalho do Pacote IPv4 - Fragmentação Slide 20 de 133

Slide 21 de 133 IP - Controle de Fluxo e Detecção de Erros Se os pacotes chegam muito rápido - o receptor descarta pacotes excessivos e envia uma mensagem ICMP ao emissor; Se um erro é encontrado (header checksum) o pacote é descartado e uma mensagem ICMP é enviada ao emissor.

Filtragem IP no Wireshark Slide 22 de 133

Slide 23 de 133

Slide 24 de 133 Fazendo acesso ao site do Salesiano http://www.catolica-es.edu.br/ (Web Server Rodando)

Slide 25 de 133

Slide 26 de 133

Slide 27 de 133 Tentativa de acesso a site 200.216.173.140 (Web Server Inoperante / Sem Serviço Web Instalado ou Configurado) Solicitação de conexão TCP através da flag SYN do Three Way Handshake; Não há respostas TCP e nem HTTP provenientes do servidor, uma vez que não existe serviço operando na porta;

Slide 28 de 133

Slide 29 de 133 Formato de quadro da Camada de Enlace O quadro de enlace de dados da Camada 2 normalmente contém informações de cabeçalho com um endereço de origem e de destino de enlace de dados (endereços MAC), informações de trailer e os dados transmitidos reais. Quando um pacote é encaminhado de um roteador para outro, os endereços IP de origem e de destino da Camada 3 não serão alterados. No entanto, os endereços do enlace de dados de origem e de destino da Camada 2 serão alterados.

Slide 30 de 133 Formato de quadro da Camada de Enlace O pacote IP de Camada 3 é encapsulado no quadro de enlace da Camada 2 associado a essa interface. No exemplo, é abordado o quadro Ethernet da Camada 2. A figura mostra as duas versões compatíveis de Ethernet

Formato de quadro da Camada de Enlace Slide 31 de 133

Slide 32 de 133 Formato de pacote IP (Internet Protocol) Preâmbulo sete bytes de 1s e 0s alternados, usados para sincronizar sinais Delimitador SOF (Start-of-frame, Início do quadro) 1 byte que sinaliza o início do quadro Endereço de destino endereço MAC de 6 bytes do dispositivo de envio no segmento local Endereço de origem endereço MAC de 6 bytes do dispositivo de recebimento no segmento local

Slide 33 de 133 Formato de pacote IP (Internet Protocol) Tipo/comprimento 2 bytes que especificam o tipo de protocolo de camada superior (formato de quadro Ethernet II) ou o comprimento do campo de dados (formato de quadro IEEE 802.3) Dados e bloco 46 a 1500 bytes de dados; zeros usados para incluir um pacote de dados inferior a 46 bytes Seqüência de Verificação de Quadros (FCS, Frame check sequence) 4 bytes usados em uma verificação de redundância cíclica para ter certeza de que o quadro não esteja corrompido

Slide 34 de 133 Determinação do Caminho Encaminhar pacotes envolve duas funções: Função de determinação do caminho Função de comutação Para determinar o melhor caminho, o roteador pesquisa sua tabela de roteamento em busca de um endereço de rede correspondente ao endereço IP de destino do pacote.

Slide 35 de 133 Determinação do Caminho Uma das três determinações de caminho é resultante dessa pesquisa: Rede conectada diretamente se o endereço IP de destino do pacote pertencer a um dispositivo em uma rede conectada diretamente a uma das interfaces do roteador, esse pacote será encaminhado diretamente para o dispositivo. Isso significa que o endereço IP de destino do pacote é um endereço de host na mesma rede da interface do roteador.

Determinação do Caminho Rede remota se o endereço IP de destino do pacote pertencer a uma rede remota, o pacote será encaminhado para outro roteador. As redes remotas só podem ser alcançadas encaminhandose pacotes para outro roteador. Nenhuma rota determinada se o endereço IP de destino do pacote não pertencer a uma rede conectada ou remota e se o roteador não tiver uma rota padrão, o pacote será descartado. O rotador envia uma mensagem inalcançável ICMP para o endereço IP de origem do pacote. Slide 36 de 133

Slide 37 de 133 Determinação do Caminho Nos dois primeiros resultados, o roteador reencapsula o pacote IP no formato do quadro de enlace de dados da Camada 2 da interface de saída. O tipo de encapsulamento da Camada 2 é determinado pelo tipo de interface. Por exemplo, se a interface de saída for FastEthernet, o pacote será encapsulado em um quadro Ethernet. Se a interface de saída for uma interface serial configurada para PPP, o pacote IP será encapsulado em um quadro PPP.

Slide 38 de 133 Função de Comutação Depois que o roteador determinar a interface de saída usando a função de determinação do caminho, o roteador irá precisar encapsular o pacote no quadro do enlace de dados da interface de saída. A função de comutação é o processo usado por um roteador para aceitar um pacote em uma interface e encaminhá-lo usando outra interface. Uma das principais responsabilidades da função de comutação é encapsular pacotes no tipo apropriado do quadro de enlace de dados para o link de dados de saída.

Slide 39 de 133 Função de Comutação O que um roteador faz com um pacote recebido de uma rede e com destino a outra rede? O roteador executa as três seguintes etapas principais: 1. Desencapsula o pacote da Camada 3, removendo o cabeçalho e o trailer do quadro da Camada 2 2. Examina o endereço IP de destino do pacote IP para localizar o melhor caminho na tabela de roteamento. 3. Encapsula o pacote de Camada 3 em um novo quadro de Camada 2 e encaminha o quadro pela interface de saída.

Função de Comutação Etapa 1 Slide 40 de 133

Função de Comutação Etapa 1 Slide 41 de 133

Função de Comutação Etapa 2 Slide 42 de 133

Função de Comutação Etapa 2 Slide 43 de 133

Função de Comutação Etapa 2 Slide 44 de 133

Função de Comutação Etapa 2 Slide 45 de 133

Função de Comutação Etapa 2 Slide 46 de 133

Função de Comutação Etapa 3 Slide 47 de 133

Função de Comutação Etapa 3 Slide 48 de 133

Função de Comutação Etapa 3 Slide 49 de 133

Função de Comutação Etapa 3 Slide 50 de 133

Função de Comutação Etapa 4 Slide 51 de 133

Função de Comutação Etapa 4 Slide 52 de 133

Função de Comutação Etapa 4 Slide 53 de 133

Função de Comutação Etapa 4 Slide 54 de 133

Slide 55 de 133 Função de Comutação Acabamos de examinar o encapsulamento e o processo de desencapsulamento de um pacote quando ele é encaminhado de roteador para roteador, do dispositivo de origem para o dispositivo de destino final. Os roteadores não estão envolvidos apenas em decisões de roteamento da Camada 3, mas que também participam de processos da Camada 2, inclusive encapsulamento, e em redes Ethernet, ARP. Roteadores também participam de Camada 1, usada para transmitir e receber os bits de dados no meio físico.

Slide 56 de 133

Protocolos e serviços de transporte Fornecem comunicação lógica entre processos de aplicação em diferentes hospedeiros (do ponto de vista da aplicação é como se estivessem diretamente conectados) Os protocolos de transporte são executados nos sistemas finais Lado emissor: quebra as mensagens da aplicação em segmentos e envia para a camada de rede Lado receptor: remonta os segmentos em mensagens e passa para a camada de aplicação Há mais de um protocolo de transporte disponível para as aplicações Internet: TCP e UDP 3-57 Slide 57 de 133

Camada de transporte vs. camada de rede Camada de Transporte x Camada de Rede Processos de aplicação usam a comunicação lógica provida pela camada de transporte para enviar mensagens entre si, livres da preocupação dos detalhes da infraestrutura física utilizada para transportar essas mensagens. Camada de rede: comunicação lógica entre os hospedeiros Camada de transporte: comunicação lógica entre os processos Depende dos serviços da camada de rede 3-58 Slide 58 de 133

Protocolos da camada de transporte da Internet Protocolos da Camada de Transporte da Internet Confiável, garante ordem de entrega: TCP Controle de congestionamento Controle de fluxo Orientado à conexão Não confiável, sem ordem de entrega: UDP Extensão do melhor esforço do IP Serviços não disponíveis: Garantia contra atrasos Garantia de banda 3-59 Slide 59 de 133

Protocolos da camada de transporte da Internet Protocolos da Camada de Transporte da Internet 3-60 Slide 60 de 133

Multiplexação/demultiplexação Multiplexação/demultiplexação Demultiplexação no hospedeiro receptor: Multiplexação no hospedeiro emissor: entrega os segmentos recebidos ao socket correto coleta dados de múltiplos sockets, envelopa os dados com cabeçalho (usado depois para demultiplexação) 3-61 Slide 61 de 133

Como funciona a demultiplexação Como funciona a demultiplexação Computador recebe datagramas IP Cada datagrama possui endereço IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui números de porta de origem e destino (lembre-se: números de porta bem conhecidos para aplicações específicas 0 a 1023) O hospedeiro usa endereços IP e números de porta para direcionar o segmento ao socket apropriado http://www.iana.org/assignments/service-names-port-numbers/service-namesport-numbers.xml http://pt.wikipedia.org/wiki/anexo:lista_de_portas_de_protocolos 3-62 Slide 62 de 133

Portas Portas 3-63 Slide 63 de 133

Demultiplexação não orientada à conexão Demultiplexação não orientada à conexão Cria sockets com números de porta: DatagramSocket mysocket1 = new DatagramSocket( ); DatagramSocket mysocket2 = new DatagramSocket(19222); Socket UDP identificado por 2 valores: (endereço IP de destino, número da porta de destino) Quando o hospedeiro recebe o segmento UDP: Verifica o número da porta de destino no segmento Direciona o segmento UDP para o socket com este número de porta Datagramas com IP de origem diferentes e/ou portas de origem diferentes, porém o mesmo endereço IP de destino e mesmo número de porta de destino, são direcionados para o mesmo socket de destino 3-64 Slide 64 de 133

Demultiplexação não orientada à conexão Demultiplexação não orientada à conexão DatagramSocket serversocket = new DatagramSocket(6428); P2 P3 P1 P1 SP: 6428 DP: 9157 SP: 6428 DP: 5775 cliente IP: A SP: 9157 DP: 6428 servidor IP: C SP: 5775 DP: 6428 cliente IP:B SP fornece o endereço retorno 3-65 Slide 65 de 133

Demultiplexação não orientada à conexão Demultiplexação não orientada à conexão 3-66 Slide 66 de 133

Demux orientada à conexão Demux orientada à conexão Socket TCP identificado por 4 valores: Endereço IP de origem End. porta de origem Endereço IP de destino End. porta de destino Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado Hospedeiro servidor pode suportar vários sockets TCP simultâneos: Cada socket é identificado pelos seus próprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP não persistente terá um socket diferente para cada requisição Cliente: Socket clientsocket = new Socket( serverhostname,6789); Servidor: Socket connectionsocket = welcomesocket.accept(); 3-67 Slide 67 de 133

Demux orientada à conexão Demux orientada à conexão P1 P4 P5 P6 P2 P1 P3 SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 SP: 9157 cliente IP: A DP: 80 S-IP: A D-IP:C servidor IP: C DP: 80 S-IP: B D-IP:C cliente IP:B 3-68 Slide 68 de 133

Demux orientada à conexão Demux orientada à conexão 3-69 Slide 69 de 133

Demux orientada à conexão servidor Web threaded Demux orientada à conexão - servidor Web threaded P1 P4 P2 P1 P3 SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 SP: 9157 cliente IP: A DP: 80 S-IP: A D-IP:C servidor IP: C DP: 80 S-IP: B D-IP:C cliente IP:B 3-70 Slide 70 de 133

UDP: User Datagram Protocol [RFC UDP: User Datagram Protocol [RFC 768] 768] Protocolo de transporte da Internet sem gorduras, sem frescuras Serviço best effort, segmentos UDP podem ser: Perdidos Entregues fora de ordem para a aplicação Sem conexão: Não há apresentação entre o UDP transmissor e o receptor Cada segmento UDP é tratado de forma independente dos outros Por que existe o UDP? Não há estabelecimento de conexão (que possa redundar em atrasos) Simples: não há estado de conexão nem no transmissor, nem no receptor Cabeçalho de segmento reduzido (8 bytes, enquanto TCP são 20 bytes) Não há controle de congestionamento: UDP pode enviar segmentos tão rápido quanto desejado (e possível) 3-71 Slide 71 de 133

Mais sobre UDP Mais sobre UDP Muito usado por aplicações de mutimídia contínua (streaming) Tolerantes à perda Sensíveis à taxa Outros usos do UDP: DNS SNMP Transferência confiável sobre UDP: acrescentar confiabilidade na camada de aplicação Recuperação de erro específica de cada aplicação 3-72 Slide 72 de 133

Cabeçalho UDP Cabeçalho UDP Source Port Number (16-bit): número da porta do host origem. Usa portas randômicas (acima de 1024) Destination Port Number(16-bit): número da porta do host destino. Usa portas conhecidas UDP Length (16-Bit): Indica o comprimento do datagrama UDP, incluindo o cabeçalho. UDP Checksum (16-Bit): checksum calculado a partir do datagrama UDP (Header + cabeçalho) 3-73 Slide 73 de 133

Cabeçalho UDP - Exemplo Cabeçalho UDP - Exemplo 3-74 Slide 74 de 133

Cabeçalho UDP - Exemplo Cabeçalho UDP - Exemplo 3-75 Slide 75 de 133

TCP: Transmission Control Protocol TCP: Transmission Control Protocol RFCs: 793, 1122, 1122, 1323, 1323, 2018, 2581 2018, 2581 Oferece uma conexão confiável entre dois hosts Proporciona um circuito virtual entre dois hosts (full duplex) Toda comunicação exige confirmação de recepção (acknowledge) Controle de Fluxo dos dados (segmentos) Existência de uma fase de estabelecimento da conexão Os segmentos podem chegar fora da ordem em que foram enviados Números de seqüência são empregados para reordenar os segmentos 3-76 Slide 76 de 133

TCP: overview TCP: overview RFCs: 793, 1122, 1122, 1323, 1323, 2018, 2581 2018, 2581 Ponto-a-ponto: Um transmissor, um receptor Confiável, seqüencial byte stream: Não há contornos de mensagens Pipelined: (transmissão de vários pacotes sem confirmação) Controle de congestionamento e de fluxo definem tamanho da janela Buffers de transmissão e de recepção Dados full-duplex: Transmissão bidirecional na mesma conexão MSS: maximum segment size Orientado à conexão: Apresentação (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados Controle de fluxo: Transmissor não esgota a capacidade do receptor 3-77 Slide 77 de 133

Estrutura do segmento TCP Estrutura do segmento TCP 3-78 Slide 78 de 133

Estrutura do segmento TCP Estrutura do segmento TCP Source Port/Destination Port (16-bit): número da porta do host origem e do host destino Sequence Number (32 bits): número que identifica a sequência de bytes da mensagem, começando com um valor randômico Acknowledgement Number (32 bits): número que confirma o recebimento dos últimos bytes enviados pelo host Header Length (4 bits): comprimento do cabeçalho Reservado: não usado 3-79 Slide 79 de 133

Estrutura do segmento TCP Estrutura do segmento TCP Flags (6 bits): usados para negociar e gerenciar uma conexão: URG: Indica que segmento enviado tem caráter de urgência ACK: Indica que o ack no segmento é válido PSH: (PUSH) indica que os dados devem ser passados para a aplicação assim que possível RST: Reseta a conexão (queda do host, rejeitar segmento) SYN: Sincroniza número de seqüência para iniciar, estabelecer uma conexão (SYN=1) FIN: Encerramento normal de conexão Window Size (16 bits): O número de bytes que o receptor está disposto a aceitar, sem confirmação (tamanho da janela). window = 0: receptor precisa de descanso. 3-80 Slide 80 de 133

Estrutura do segmento TCP Estrutura do segmento TCP TCP Checksum (16 bits): um checksum do segmento TCP (header + dados) Urgent Pointer (16 bits): usado somente se o flag URG estiver acionado Options: A opção mais comum é o Maximum Segment Size (MSS) que determina o maior tamanho de segmento TCP que o host origem pode receber. (Windows Size >= MSS). Especificar valor inicial da janela. Se ausente, usar default (536+20=556 octetos) Data: Dados. Quando conexões estão sendo estabelecidas, nenhum dado é enviado 3-81 Slide 81 de 133

Estrutura do segmento TCP Estrutura do segmento TCP O cabeçalho de um segmento TCP tem 20 bytes fixos além de uma parte opcional; O software TCP é que define o tamanho dos segmentos; Fatores que restringem o tamanho do segmento: Cada segmento, incluindo o cabeçalho TCP, deve caber na carga útil do IP (65.515 bytes). Cada segmento deve caber na unidade máxima de transferência (MTU) da rede física (normalmente Ethernet com 1.500 bytes). Os fluxos de dados do usuário são divididos em partes de no máximo 64 Kb e envia cada parte com um datagrama IP distinto. Na prática temos com frequência 1.460 bytes de dados, para que ele possa caber em um único quadro Ethernet com os cabeçalhos IP e TCP. 3-82 Slide 82 de 133

Estrutura do segmento TCP Estrutura do segmento TCP URG: dados urgentes (pouco usados) ACK: campo de ACK é válido PSH: produz envio de dados (pouco usado) RST, SYN, FIN: estabelec. de conexão (comandos de criação e término) contagem por bytes de dados (não segmentos!) número de bytes receptor está pronto para aceitar Internet checksum (como no UDP) 3-83 Slide 83 de 133

Estrutura do segmento TCP Estrutura do segmento TCP 3-84 Slide 84 de 133

Estrutura do segmento TCP Estrutura do segmento TCP 3-85 Slide 85 de 133

Cabeçalho TCP x Cabeçalho UDP Cabeçalho TCP x Cabeçalho UDP 3-86 Slide 86 de 133

Slide 87 de 133 O Protocolo HTTP Hyper Text Transfer Protocol é o protocolo usado na World Wide Web para a distribuição e recuperação de informação. A troca de informações entre um browser e um servidor Web é toda feita através desse protocolo, que foi criado especificamente para a World Wide Web.

Slide 88 de 133 O Protocolo HTTP O HTTP define uma forma de conversação no estilo pedido-resposta entre um cliente (o browser) e um servidor (o servidor Web). Toda a conversação se dá no formato ASCII (texto puro) através de um conjunto de comandos simples baseados em palavras da língua inglesa.

Slide 89 de 133 Cliente HTTP Os clientes de uma conexão HTTP são os browsers (navegadores). Atualmente os browsers que mais se destacam no mercado são: Mozilla Firefox Google Chrome Internet Explorer Opera Safari, etc

Slide 90 de 133 Servidores HTTP Os servidores de uma conexão HTTP são os servidores Web. Os servidores Web de maior destaque atualmente no mercado são: Apache Internet Information Server (IIS) Nginx, etc Existem servidores gratuitos e comerciais.

Slide 91 de 133

Slide 92 de 133

Slide 93 de 133

Slide 94 de 133

Slide 95 de 133

Slide 96 de 133 Pedido HTTP Um exemplo de pedido HTTP (é totalmente transparente para o usuário do browser):

Slide 97 de 133 Pedido HTTP Um pedido HTTP é composto de quatro partes básicas: O método - ação a ser realizada. A URI (Universal Resource Identifier) a informação requisitada. A versão do protocolo HTTP - a atual 1.1. Informações adicionais - informações complementares às demais.

Slide 98 de 133 Pedido HTTP - Método O método definido será aplicado no objeto (a informação requisitada) definido pela URI

Slide 99 de 133 Pedido HTTP - Método O método pode ser um entre vários tipos: GET - retorna o objeto, ou seja, a informação requisitada. HEAD - retorna somente informações sobre o objeto, como tamanho, data de criação etc. POST - envia informações para o servidor Web. Método utilizado por scripts. PUT - envia uma cópia de um objeto/informação para ser armazenado num servidor Web. DELETE - apaga um objeto armazenado no servidor Web.

Slide 100 de 133 Pedido HTTP - URI O tipo de URI utilizada pelo protocolo HTTP é chamada de URL (Uniform Resource Locator) e contém três partes: A identificação do protocolo; O endereço do computador servidor; O documento requisitado (pode incluir subdiretórios). Um bom exemplo de URL seria o documento index.html armazenado no diretório internet em um servidor de endereço www.site.com.br: http://www.site.com.br/internet/index.html

Slide 101 de 133 HTTP - URL URL = protocolo + nome de domínio + caminho para a informação

Pedido HTTP - Versão Ao enviar o pedido HTTP, o browser informa ao servidor qual versão do protocolo HTTP ele suporta. Enquanto a versão HTTP 1.1 é mais atual, muitos browsers e servidores Web ainda utilizam a versão 1.0. Slide 102 de 133

Slide 103 de 133 Pedido HTTP - Informações Adicionais São maneiras do browser informar ao servidor Web algumas preferências definidas na configuração do browser como: Tipo de documento aceitos. Linguagem preferida para os documentos HTML que são retornados. Set de caracteres suportados. etc.

Slide 104 de 133 Pedido HTTP Completo Exemplo:

Slide 105 de 133 Resposta HTTP O servidor Web ao receber o pedido, processao de modo a determinar o que deverá ser feito. Em relação ao pedido do slide anterior, o servidor Web deverá procurar o arquivo index.html no diretório internet e retorna-lo ao browser.

Slide 106 de 133 Resposta HTTP Um exemplo de resposta HTTP (é totalmente transparente para o usuário do browser):

Slide 107 de 133 Resposta HTTP Uma resposta HTTP é formada por três elementos: Linha de status - indicando sucesso ou falha do pedido. Descrição da informação - contida na resposta (Metainformação/MIME). A própria informação - que foi requisitada.

Slide 108 de 133 Resposta HTTP - Status A linha de status traz as seguintes informações: A versão do protocolo HTTP; O código de status que define o resultado do pedido; Uma pequena frase explicando o que significa o código.

Resposta HTTP - Status Os principais códigos de status existentes: 2xx: Success (Sucesso) - indica que a requisição do cliente foi bem sucedida; 200 (OK) - pedido bem sucedido. A informação requisitada será retornada. 3xx: Redirection (Redirecionamento) - informa a ação adicional que deve ser tomada para completar a requisição; 401 (Unauthorized) - a informação requisitada é de acesso restrito, sendo necessário se autenticar. 403 (Forbidden) - acesso proibido. 404 (Not found) - a informação requisitada não foi encontrada ou teve permissão de acesso negada. A primeira opção é muito freqüente na Internet e pode ocorrer por erro de digitação de uma URL. 5xx: Server Error (Erro no servidor) - ocorreu um erro no servidor ao cumprir uma requisição válida. Slide 109 de 133

Resposta HTTP - Descrição da Informação Uma das partes mais importantes de uma resposta HTTP é a informação que define o tipo de documento que está sendo retornado ao browser, de modo que ele possa exibí-lo adequadamente. Essa informação é codificada pelo tipo MIME (Multi Purpose Mail Extensions). Slide 110 de 133

Slide 111 de 133 Resposta HTTP - Descrição da Informação Em outras palavras, o servidor Web, ao receber o pedido, procura o arquivo e checa a sua extensão (.html), realizando uma consulta em uma grande tabela de tipos MIME que indica o código que deverá ser usado para cada extensão existente. No caso de arquivos.html/htm, o tipo MIME é o text/html.

Slide 112 de 133 Tipos MIME Alguns tipos MIME conhecidos: text/plain - arquivo no formato texto (ASCII); text/html - dosumento no formato HTML, o padrão para documentos Web; application/zip - arquivo compactado; image/gif - imagem codificada no formato GIF; image/jpeg - imagem codificada no formato JPEG.

Resposta HTTP - Descrição da Informação Outros tipos de informação sobre o arquivo que está sendo retornado: Tamanho em bytes; Última data de atualização; etc. Slide 113 de 133

Resposta HTTP - Informação Requisitada A última parte de uma resposta HTTP é sempre a informação que foi requisitada, que pode ser um documento HTML, uma imagem GIF, etc. Essa informação, independente to tipo, é sempre em formato ASCII (texto puro). Slide 114 de 133

Slide 115 de 133 Resposta HTTP Um exemplo de resposta HTTP:

Slide 116 de 133

Slide 117 de 133

DNS: Domain Name System Pessoas: muitos identificadores: RG, nome, passaporte Internet hospedeiros, roteadores: Endereços IP (32 bits) - usados para endereçar datagramas nome, ex.: gaia.cs.umass.edu - usados por humanos P.: Relacionar nomes com endereços IP? Domain Name System: Base de dados distribuída implementada numa hierarquia de muitos servidores de nomes Protocolo de camada de aplicação hospedeiro, roteadores se comunicam com servidores de nomes para resolver nomes (translação nome/endereço) Nota: função interna da Internet, implementada como protocolo da camada de aplicação Complexidade na borda da rede 3-118 Slide 118 de 133

DNS: Domain Name System DNS services Nome do hospedeiro para tradução de endereço IP Hospedeiro aliasing Nomes canônicos e alias mail server aliasing distribuição de carga Servidores Web replicados: estabelece o endereço IP para um nome canônico Por que não centralizar o DNS? Ponto único de falha Volume de tráfego Base centralizada de dados distante Manutenção Não é escalável! 3-119 Slide 119 de 133

Base de dados distribuída, hierárquica Cliente quer o IP para www.amazon.com; 1 a aprox.: Cliente consulta um servidor de raiz para encontrar o servidor DNS.com Cliente consulta o servidor DNS com para obter o servidor DNS amazon.com Cliente consulta o servidor DNS amazon.com para obter o endereço IP para www.amazon.com 3-120 Slide 120 de 133

DNS: servidores de nomes raiz São contatados pelos servidores de nomes locais que não podem resolver um nome Servidores de nomes raiz: Buscam servidores de nomes autorizados se o mapeamento do nome não for conhecido Conseguem o mapeamento Retornam o mapeamento para o servidor de nomes local Existem 13 servidores de nomes raiz no mundo 3-121 Slide 121 de 133

Servidores TLD e autoritários Servidores top-level domain (TLD): responsáveis pelos domínios com, org, net, edu etc e todos os domínios top-level nacionais uk, fr, ca, jp. Network Solutions mantém servidores para o TLD com TLD Educause para o TLD edu Servidores DNS autorizados: servidores DNS de organizações, provêm nome de hospedeiro autorizado para mapeamentos IP para servidores de organizações (ex.: Web e mail). Podem ser mantidos por uma organização ou provedor de serviços 3-122 Slide 122 de 133

Servidor de nomes local Não pertence estritamente a uma hierarquia Cada ISP (ISP residencial, companhia, universidade) normalmente possui um Também chamado de servidor de nomes default Quando um hospedeiro faz uma pergunta a um DNS, a pergunta é enviada para seu servidor DNS local Age como um proxy, encaminhando as perguntas para dentro da hierarquia 3-123 Slide 123 de 133

Exemplo O hospedeiro em cis.poly.edu quer o endereço IP para gaia.cs.umass.edu 3-124 Slide 124 de 133

Exemplo Consulta recursiva: Transfere a tarefa de resolução do nome para o servidor de nomes consultado Carga pesada? Consulta encadeada: Servidor contatado responde com o nome de outro servidor de nomes para contato eu não sei isto, mas pergunte a este servidor 3-125 Slide 125 de 133

DNS: armazenando e atualizando registros Uma vez que um servidor de nomes aprende um mapeamento, ele armazena o mapeamento num registro do tipo cache Registro do cache tornam-se obsoletos (desaparecem) depois de um certo tempo Servidores TLD são tipicamente armazenados em cache nos servidores de nome locais Mecanismos de atualização e notificação estão sendo projetados pelo IETF RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html 3-126 Slide 126 de 133

Registros do DNS DNS: base de dados distribuída que armazena registros de recursos (RR) formato dos RR: (name, value, type,ttl) Type = A name é o nome do computador value é o endereço IP Type = NS name é um domínio (ex.: foo.com) value é o endereço IP do servidor de nomes autorizados para este domínio 3-127 Type = CNAME name é um apelido para algum nome canônico (o nome real) www.ibm.com é realmente servereast.backup2.ibm.com value é o nome canônico Type = MX value é o nome do servidor de correio associado com name Slide 127 de 133

DNS: protocolo e mensagem Protocolo DNS: mensagem de consulta e resposta, ambas com o mesmo formato de mensagem Cabeçalho da msg Identificação: número de 16 bits para consulta, resposta usa o mesmo número Flags: Consulta ou resposta Recursão desejada Recursão disponível Resposta é autorizada 3-128 Slide 128 de 133

Exemplo Exemplo: empresa recém-criada Network Utopia Registrar o nome networkuptopia.com num registro (ex.: Network Solutions) É necessário fornecer ao registro os nomes e endereços IP do seu servidor de nomes autorizados (primário e secundário) Registro insere dois RRs no servidor TLD do domínio.com: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) No servidor autorizado, inserir um registro Tipo A para www.networkuptopia.com e um registro Tipo MX para networkutopia.com Como as pessoas obtêm o endereço IP do seu Web site? Inserindo registros no DNS 3-129 Slide 129 de 133

Slide 130 de 133

Slide 131 de 133

Slide 132 de 133 Referências Bibliográficas CASTRO JR, A. P. Redes de Computadores Cisco Networking Academy. CCNA Exploration 4.0 - Fundamentos de Rede KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet. 3 ed. São Paulo: Pearson Addison Wesley, 2006 LUCAS, J. E. S.; Aula 01 - Arquitetura e Protocolos de Redes de Computadores (com adaptações) TANENBAUM, A. S. Redes de Computadores. 4 ed. Rio de Janeiro: Campus, 2003 TEIXEIRA, S. Aula 03 - Modelo OSI

Slide 133 de 133 Laboratório de Redes Obrigado!!! Prof. Esp Camilo Brotas Ribeiro cribeiro@catolica-es.edu.br