ARQUITETURA TCP/IP SUPORTE TÉCNICO REDES DE COMPUTADORES ● Tanenbaum: “conjunto de computadores autônomos interconectados por uma única tecnologia. Dois computadores estão interconectados quando podem trocar informações” MODELO EM CAMADAS ● Modelo em camadas o Redução de Complexidade o Funcionalidade definida o Comunicação em camadas o Mudança de protocolos EXEMPLO DE COMUNICAÇÃO EM CAMADAS PROTOCOLO DE COMUNICAÇÃO ● ● Regras e convenções definidas Definição de formato de troca de mensagens INTERFACES ● ● ● Interface entre camadas adjacentes Define operações e serviços a serem oferecidos à camada superior Camada N - oferece serviço à camada N+1 CAMADAS, PROTOCOLO E INTERFACES ARQUITETURA DE REDE ● ● ● Definição: conjunto de camadas e seus protocolos Detalhes de implementação e especificação de interfaces não fazem parte da arquitetura Pilha de protocolos MODELO OSI ● ● ● ISO - OSI (Open System Interconection) Modelo em camadas 7 camadas o Física o Enlace o Rede o Transporte o Sessão o Apresentação o Aplicação Aplicação Apresentação Sessão Transporte Rede Enlace Física 7 6 5 4 3 2 1 ARQUITETURA TCP/IP ● ● ● ● ● Arquitetura utilizada na ARPANET Característica de uso militar Protocolos flexíveis para suporte a diferentes aplicações Reprojeto dos protocolos TCP/IP Rede de comutação de pacotes ARQUITETURA TCP/IP ● OSI X Arquitetura TCP/IP 7 6 5 4 3 2 1 Aplicação Apresentação Sessão Transporte Rede Enlace Física Aplicação Transporte Inter-Redes Hospedeiro/ Rede ARQUITETURA TCP/IP ● Modelo Híbrido 7 6 5 4 3 2 1 Aplicação Apresentação Sessão Transporte Rede Enlace Física Aplicação Transporte Rede Enlace Física ARQUITETURA TCP/IP ● Camada Hospedeiro/Rede o Protocolo não definido pelo modelo TCP/IP o Transmissão dos pacotes IP o Variação em função do hospedeiro e rede o Exemplos de Protocolos: Ethernet, FDDI, 802.11 ARQUITETURA TCP/IP ● Camada Inter-Redes o Conhecida como "camada de rede" o Rede comutada por pacotes o Define o protocolo IP o Roteamento de pacotes o Controle de congestionamento o Exemplos de Protocolos: IP, ARP, RARP, ICMP ARQUITETURA TCP/IP ● Camada de Transporte o Responsável por comunicação fim-a-fim o Confiabilidade o Entrega sem erros o Entrega em sequência o QOS o Segmentação o Controle de fluxo o Exemplos de Protocolos: TCP, UDP, SCTP ARQUITETURA TCP/IP ● Camada de Aplicação o Camada de interface com o usuário o Maioria das aplicações são executadas o Exemplos de protocolos: HTTP, SMTP, FTP, SSH, POP3, IMAP, DNS TECNOLOGIAS DE TRANSMISSÃO ● ● Redes de difusão (broadcast) Redes ponto-a-ponto (point-to-point/P2P) TECNOLOGIAS DE TRANSMISSÃO ● Redes ponto-a-ponto o Conexões entre pares o Pacotes enviados na modalidade store-and-forward o Necessário algoritmo de roteamento TECNOLOGIAS DE TRANSMISSÃO ● Redes de difusão o Canal de comunicação compartilhado o Toda mensagem possui um campo de destinatário o Necessário forma de controle de acesso ao meio TECNOLOGIAS DE TRANSMISSÃO ● Redes de difusão X Ponto-a-ponto Difusão Ponto-a-ponto Redes menores Redes maiores Redes locais Redes espalhadas geograficamente CAMADA DE ENLACE ● Funções Enlace LLC Logical Link Control (Controle do Enlace Lógica) MAC Media Access Control (Controle de Acesso ao Meio) CAMADA DE ENLACE ● Funções o Enquadramento: agrupar sequência de bits em quadros o Entrega confiável o Detecção e correção de erros o Subcamada de controle de acesso ao meio (MAC) CAMADA DE ENLACE ● Funções o Responsável pela comunicação entre dois computadores adjacentes fisicamente ligados por um canal de comunicação o Utiliza FIFO (first-in-first-out) preserva a ordem que os bits foram enviados CAMADA DE ENLACE ● Funções o A camada física aceita um fluxo de bits brutos e tenta entregá-los ao destino o Não há garantia de que esse fluxo de bits seja livre de erros o O número de bits recebidos pode ser menor, igual ou maior que o número de bits transmitidos o Os bits podem ter valores diferentes dos bits originalmente transmitidos CAMADA DE ENLACE ● Funções o A camada de enlace de dados é responsável por transformar um canal de transmissão bruto em uma linha que pareça livre de erros o Pode detectar o erro ou corrigi-lo o O transmissor divide os dados de entrada em quadros com algumas centenas ou alguns milhares de bytes CAMADA DE ENLACE ● Encapsulamento CAMADA DE ENLACE ● Detecção e Correção Payload HEAD Payload CRC ETHERNET ● ● ● ● ● ● ● Comunicação através do MAC 6 bytes Hexadecimal Separados por ‘:’ ou ‘-’ 3 bytes fabricantes 3 bytes identifica o equipamento Identificador universal o ● ● Ou deveria ser Padronização do IEEE http://standards.ieee.org/develop/regauth/oui/public.html ARP ● ● ● ● Address Resolution Protocol Faz a tradução entre IP e para MAC Cada nó possui uma tabela, normalmente temporária (TTL), contendo associação entre IP e MAC Utiliza o arp para descoberta do MAC do host de destino ARP ● Exemplo de tabela arp Endereço IP Endereço MAC TTL 192.168.0.1 00:F1:10:20:12:12 13:45 192.168.0.2 00:F1:10:12:13:29 07:21 EQUIPAMENTO DE CAMADA 2 ● ● ● Switch AP Bridge COMPARATIVO ENTRE DISPOSITIVOS Hub Roteador Switch Isolamento de Tráfego Não Sim Sim Plug-and-play Sim Não Sim Roteamento Ótimo Não Sim Não EQUIPAMENTOS ● Hub - Camada 1 EQUIPAMENTOS ● Switch - Camada 2 o Gerenciável o Não gerenciável EQUIPAMENTOS ● APs - Camada 2 VLAN ● ● ● Procolo da camada 2 Função principal: Segmentar a rede Funções: o Segmentação baseado na estrutura organizacional o Controle o Segurança o Isolamento de problemas o Desempenho - Broadcast o Economia VLAN ● Com VLAN X Sem VLAN CAMADA DE REDE ● A “cola” da Internet CAMADA DE REDE ● Funcionamento: ○ Transporta segmentos do hospedeiro transmissor para o receptor ○ No lado transmissor encapsula os segmentos em datagramas ○ No lado receptor, entrega os segmentos à camada de transporte ○ Protocolos da camada de rede em cada hospedeiro, roteador ○ Roteador examina campos de cabeçalho em todos os datagramas IP que passam por ele CAMADA DE REDE ● Funções: ○ ○ Comutação ■ Mover da entrada para saída ■ Ação local Roteamento ■ Determinar rota do início ao fim ■ Caminho fim-a-fim CAMADA DE REDE ● Redes de datagrama ○ ● Sem conexão na camada de rede Redes de circuito virtual ○ Com conexão na camada de rede REDES DE DATAGRAMA ● ● ● ● ● Não existe estabelecimento de conexão na camada de rede Roteadores: não existe estado sobre conexões fim-a-fim O conceito “conexão” não existe na camada de rede Pacotes são encaminhados pelo endereço do hospedeiro de destino Pacotes para o mesmo destino podem seguir diferentes rotas REDES DE DATAGRAMA ● ● ● ● ● No IP não há garantia: ○ Temporização entre pacotes seja preservada ○ Pacotes sejam recebidos na ordem em que foram enviados; ○ da eventual entrega dos pacotes transmitidos Outros procolos devem tratar esses problemas Complexidade nas extremindades Sistemas finais inteligentes Redes mais simples internamente e com diversos tipos de enlace REDES DE DATAGRAMA REDES DE DATAGRAMA ROTEADOR ● ● ● Principal elemento de camada 3 Execução de algoritmos de roteamento ○ OSPF ○ RIP ○ BGP Comutar os datagramas do link de entrada para saída CAMADA DE REDE ● Protocolos: ○ IPv4 ○ IPv6 ○ ICMP CAMADA DE REDE ● IP ○ Internet Protocol ○ Projetado para interconexão de rede ○ Versão 4 - Presente ○ Versão 6 - Presente/Futuro ○ Não há garantia de entrega ○ Não há garantia de ordem de entrega IPV4 ● ● Formato do quadro Vamos analisar o quadro IPV4 ● Fragamentação ○ Um pacote é dividido em vários fragmentos ○ Remontagem realizada no destino ○ Diversos MTUs ○ Informações para remontagem no cabeçalho IP ○ Necessidade de todos os fragmentos para remontagem IPV4 ● Endereçamento ○ Crucial para Internet ○ Importante entendimento ○ Não trata da entrega local ○ Famoso Endereço IP IPV4 ● Endereçamento ○ Comprimento de 32 bits ou 4 bytes ○ Escrito de forma decimal separados por . ○ Cerca de 4 milhões de endereços possíveis ○ Cada interface deveria ter endereço único (NAT, vamos falar ainda) ○ Exemplo: ■ Decimal: 193.32.216.9 ■ Binário: 11000001 00100000 11011000 00001001 IPV4 ● Endereçamento ○ Designa o endereço a sub-rede ○ Parte identifica a rede e outra porção o host da rede ○ Máscara de sub-rede (netmask) ○ Os bits mais a esquerda que representam o endereço da rede ○ Utiliza-se a notação da / para separação ■ ○ Exemplo: /24 OU na forma decimal ■ Exemplo: 255.255.255.0 IPV4 ● Endereçamento ○ CIDR (Classeless Interdomain Routing) - Roteamento Interdomínio sem classe ○ Formato ■ a.b.c.d/x ○ x = máscara de rede, quantidade de bits que representam o prefixo de rede ○ 32 -x = Identificam os hosts da rede ○ Exemplo: ■ 192.168.0.0/24 IPV4 ● Endereçamento ○ Detalhando : 192.168.0.0/24 ■ 192.168.0.0 - Endereço da rede ■ 192.168.0.255 - Broadcast ■ 192.168.0.1 - 192.168.0.254 - Possíveis hosts IPV4 ● Endereçamento ○ Calculando sub-redes e endereços: ○ Endereços de hots possívies: 2n -2 ○ N = número de bits para identificação da rede IPV4 ● Endereçamento ○ ○ Faixas utilizadas internamente ■ Rede 10.0.0.0 (classe A) ■ Rede 172.16.0.0 até 172.31.0.0 (classe B) ■ Rede 192.168.0.0 (classe C) NAT - Network Address Translation IPV4 ● Endereçamento ○ Como o nó verifica se a estação está na mesma rede? ■ Máscara de rede - Vamos verificar no quadro TABELA DE ROTAS ● ● Cada entrada especifica um destino e o próximo roteador para alcançá-lo Mantém entradas para outras redes e hospedeiros locais TABELA DE ROTAS ● Quando um pacote é recebido, o roteador verifica a qual rede pertence ○ Se for para uma rede distante, é encaminhado para o próximo roteador conforme tabela ○ Se for para rede local, o pacote é enviado diretamente ○ Se não estiver na tabela e não for local o destino é o gateway padrão TABELA DE ROTAS ● Exemplo Endereço/Máscara Próximo Salto 135.46.56.0/22 Interface 0 135.46.60.0/22 Interface 1 192.53.40.0/23 Roteador 1 Padrão Roteador 2 TABELA DE ROTAS ● Exemplo ○ O que o reteador fará com os pacotes destinados a: ■ 135.46.63.10 ■ 135.46.52.2 ■ 135.46.57.14 ■ 192.53.56.7 ■ 192.53.40.7 IPV4 ● Roteamento ○ Principal função da camada de rede ○ Pode necessitar de diversos hops (saltos) ○ Roteamento estático ○ Roteamento dinâmico IPV4 ● Roteamento Estático ○ Tabela definida manualmente ○ Tabelas não se alteram de acordo com a topologia ○ Sujeito a falhas de configuração ○ Manutenção realizada manualmente ○ Custo da manutenção cresce em função da complexidade e tamanho da rede CAMADA DE TRANSPORTE ● ● ● ● ● Fornece serviço diretamente aos processos Não é implementada em roteadores Fornece meio de transporte lógico Processos em hosts diferentes utilizam conexão lógica da camada de transporte PDU da camada é o Segmento CAMADA DE TRANSPORTE ● ● ● ● Camada de Rede identifica o host Camada de transporte identifica o processo ou usuário do host Permite que diversos aplicativos enviem dados a partir de um único host Sistemas Operacionais são multi-tarefas CAMADA DE TRANSPORTE CAMADA DE TRANSPORTE ● ● ● Multiplexação ○ Reunir dados provinientes de diferentes processos de aplicação ○ Transmissor Demultiplexação ○ Entrega dos segmentos para a aplicação ○ Receptor Utiliza números de porta e endereço IP CAMADA DE TRANSPORTE ● Arquitetura TCP/IP basicamente 2 protocolos ○ TCP ○ UDP UDP ● ● ● User Datagrama Protocol Serviço não confiável ○ Segmentos podem não chegar ○ Segmentos podem chegar fora de ordem Não orientado a conexão ○ Cada segmento tratado independente ○ Não há apresentação entre o transmissor e o receptor UDP ● ● ● ● ● ● Protocolo simples Mínimas funções da camada de transporte Basicamente detecção de erro e entrega os dados para o processo correto Aplicação fala quase diretamente o IP Pouco acrescenta a camada de rede Então porque utilizar? UDP ● ● ● ● Entrega de forma mais rápida, sem estabelecimento de sessão Sem controle de congestionamento Sem estado de conexão Cabeçalho pequeno UDP ● Estrutura do segmento UDP ● Estrutura do segmento ○ Source port ■ ○ Destination Port ■ ○ Porta de destino da aplicação UDP length ■ ○ Porta de origem da aplicação Tamanho total do segmento em bytes UDP checksum ■ Campo opcional ■ Complemento de 1 da soma de todas as palavras UDP ● Utilização ○ Aplicações cliente x servidor ○ Um consulta para uma resposta ○ Aplicações de mídia ○ Aplicações tolerantes a falha TCP ● ● Transmission Control protocol Serviço confiável ○ ● Orientado a conexão ○ ● Garante que os dados serão entregues na forma que foram enviados Conexões nos sistemas finais Controle de fluxo ○ Transmissor não esgota a capacidade do receptor TCP ● Controle de congestionamento ○ ● Gerencia timers ○ ● ● ● Transmissor não esgota recursos da rede Necessita de timers para executar o trabalho Mais complexo que o UDP Principal protocolo Utilizado pela maioria das aplicações TCP ● Recebe fluxo da aplicação e divide em partes ○ ● ● Com frequência, temos 1460 para que ele possa caber em um quadro ethernet Camada de rede aceita cada parte como um segmento distinto Destino restaura o fluxo original TCP ● ● Destino retorna um segmento com número de confirmação com o número da próxima sequência a receber Se expirar o timer, o segmento será retransmitido TCP ● ● ● Serviço TCP utiliza o conceito de socket ○ Endereço IP + Número da porta ○ Portas abaixo de 1024 - Portas bem conhecidas O serviço TCP necessita estabelecimento de sessão Fluxo ○ Estabelecimento de sessão ○ Transferência de dados ○ Término da conexão TCP ● ● ● Conexões são identificadas por socket ○ Endereço IP de origem ○ Porta de origem ○ Endereço IP de destino ○ Porta de destino Conexões são full-duplex Analogia ao endereço de um edifício TCP ● Estabelecimento de conexão ○ Passo 1: Cliente inicia conexão com SYN=1 e ack=0 ○ Passo 2: Servidor responde com SYN=1 e ack=1 ○ Passo 3: Cliente responde com SYNC=1 e ack=1 ○ Famoso: 3-way handshake TCP TCP ● Término de conexão ○ Passo 1: host 1 envia FIN ao host 2 ○ Passo 2: host 2 responde FIN para host 1 com ACK ○ Passo 3: host 2 envia FIN ao host 1 ○ Passo 4: host 1 responde FIN para host 2 com ACK TCP CAMADA DE APLICAÇÃO ● Camada de interface com o usuário ● Motivo da existência de redes ● Maioria das aplicações são executadas ● Exemplos de protocolos: HTTP, SMTP, FTP, SSH, POP3, IMAP, DNS ● Procolos definos na RFC ARQUITETURAS DE APLICAÇÃO ● Cliente-servidor ● P2P ● Híbrida ARQUITETURAS DE APLICAÇÃO ● Cliente-servidor o o Servidor Endereço fixo Hospedeiro ativo Sempre aguardando conexão Cliente Endereço dinâmico Nem sempre estão conectados o Comunicação só pode ocorrer entre clientes e servidores o Exemplo: Servidor Web ARQUITETURAS DE APLICAÇÃO ● P2P (Peer-to-peer / Ponto-a-Ponto) o Sem um nó central o Conexões alteram com frequência o Altamente escalável o Difícil de gerencial o Exemplo: Torrent ARQUITETURAS DE APLICAÇÃO ● Híbrido o Presença de um servidor para localizar os pares ou arquivos o Comunicação realizada diretamente entre os pares o Exemplo: Voip COMUNICAÇÃO ENTRE PROCESSOS ● No mesmo host quem define é o SO ● Entre hosts diferentes: o Processo cliente o Processo servidor COMUNICAÇÃO ENTRE PROCESSOS ● Estrutura P2P: Quem é o cliente e quem é o servidor? SOCKETS ● Envio/Recebimento para o socket ● Análogo a uma porta FUNCIONAMENTO ● Através da endereço - IP ● Através da porta - 80 ● Junção de endereço e porta FUNCIONAMENTO ● ● Protocolos da camada de transporte o TCP o UDP Aplicação define qual protocolo utilizar APLICAÇÃO X CAMADA DE TRANSPORTE Aplicação Procolo de Aplicação Protocolo de Transporte Email SMTP TCP Web HTTP TCP Compartilhamento de Arquivo SAMBA TCP Resolução de nome DNS UDP Acesso Remoto SSH TCP Monitoramento SNMP UDP FUNCIONAMENTO ● Serviços o Analogia a um shopping