TCP-IP J.Netto Ir p/ primeira página Apresentação Conceituação básica Princípio de funcionamento Protocolos de rede e transporte Aplicações e Diagnósticos Ir p/ primeira página Necessidades de uso de redes Compartilhamento de recursos e informações Impressora Disco Rede Usuário Supervisório Ir p/ primeira página Conceito INTERNET Independência tecnológica de rede e de sistema operacional Interconexão universal Confirmação ponto-a-ponto Ir p/ primeira página Internet G G G Ir p/ primeira página Súmula Introdução Protocolo IP Sub-redes Domínios Enderecamento IP Modelo Cliente Servidor ARP Protocolo de Aplicação ICMP TCP UDP Diagnóstico Ir p/ primeira página Introdução Protocolo: Conjunto de regras que determinam como o hardware e o software de uma rede devem interagir para transmitir e receber informacões. Utilização de um conjunto de protocolos cooperantes Ir p/ primeira página Introdução Porque uma família de protocolos? Falha de hardware Congestionamento de rede Atraso e/ou perda de pacotes Erros de transmissão Duplicacão de dados e/ou erros de sequenciamento Ir p/ primeira página Introdução TCP-IP Padrão de facto Início do desenvolvimento pelo DARPA (Defense Advanced Research Projects Agency) Protocolo da INTERNET (milhares de computadores conectados) Protocolos abertos (RFCs) Ir p/ primeira página Organização em camadas ISO/OSI Internet S/A/Aplic. Aplicações Transporte TCP Rede IP Enlace Físico Interface de rede Intra rede Ir p/ primeira página Família de protocolos TCP/IP arp rlogin,ftp,... TCP IP NFS,DNS,.. tracert UD P ICMP ARP , Device drivers rede Ir p/ primeira página Família TCP/IP Device drivers: Acesso ao hardware de rede ARP: Address Resolution Protocol IP: Internet Protocol ICMP: Internet Control Message Protocol TCP: Transmission Control Protocol UDP: User Datagram Protocol Ir p/ primeira página Encapsulamento de dados Quebra em pacotes Tráfego de sequência de bits H4 Dados H3 Dados H1 Dados Dados H2 Dados Dados Dados Dados H4 H3 H2 H1 Hx - Cabeçalho (Header) - Controle Dados - Não tratado pelo nível x Ir p/ primeira página Exemplo: TCP-IP sobre ethernet Preâmbulo dstadr srcadr tipo dados (ex. tcp/ip) crc Tipo: Serve para identificar qual o protocolo que esta dentro do pacote Ir p/ primeira página Pacotes auto identificados Telnet ICMP FTP SMTP (mail) TCP UDP IP ARP Outro Protocolo Demultiplexa (tipo) Pacote chega Ir p/ primeira página Protocolo IP - Internet Protocol Se encarrega da “entrega” das mensagens na rede Serviço não orientado a conexão (não estabelece circuito virtual) Não oferece garantia que o datagrama chega ao destino Entrega as mensagens baseado em um endereço único para cada máquina = endereço IP Ir p/ primeira página Endereçamento IP O nível IP gerencia os pacotes de bits de acordo com o endereço IP do destinatário Pacotes trafegam dentro de uma mesma rede trafegam de uma rede local à outra (routing) Ir p/ primeira página Endereço IP Contém a indicação da rede e da máquina (host) dentro da rede Cada computador possui um único número de 32 bits = endereço INTERNET Endereço dividido em 4 campos de 8 bits Cada campo é representado por um número entre 0 e 255, e são separados por um ponto exemplo: 143.54.12.12 (w.x.y.z) Ir p/ primeira página Classes de Endereços Divididos em três classes: A, B e C Classe A: redes com grande número de máquinas 7 bits para netid e 24 bits para hostid ( mais de 65536 máquinas) w na faixa de 0 a 126 0 0 netid 7 8 16 hostid 24 31 Ir p/ primeira página Classe B: redes com médio número de máquinas 14 bits para netid e 16 bits para hostid ( até 65534 máquinas) w na faixa de 128 a 191 0 1 0 8 netid 16 hostid 24 31 Ir p/ primeira página Classe C: redes com pequeno número de máquinas 21 bits para netid e 8 bits para hostid (entre 1 e 254 máquinas) w na faixa de 192 a 233 0 1 1 0 8 netid 16 24 hostid 31 Ir p/ primeira página Endereçamento abrangente (broadcast) Endereço da rede: contém hostid com todos os bits em zero (0) (não se refere aos hosts) Endereço de broadcast (refere-se a todos os hosts): hostid com todos os bits em um (1) (limitado a uma rede física) Ir p/ primeira página Casos especiais Hosts com duas conexões às redes(multi homed): dois endereços IP (ex. gateways) Loopback: 127.0.0.1 Rede para teste e comunicação entre processos de uma mesma máquina (nunca aparece como endereço de fonte ou destino na rede) Ir p/ primeira página Casos especiais Todos os bits em zero: O próprio host usado apenas para startup e não aparece como endereço de destino Todos os bits de netid em zero: Um host específico na rede onde trafega o pacote - usado para startup e não aparece como endereço de destino Todos os bits de hostid em um (1): broadcast para a rede onde trafega o pacote Ir p/ primeira página Endereços IP - Resumo Classe byte w netid hostid Número de hosts A 1-126 x.y.z 16777214 A 127 B 128-191 w.x C 192-223 w.x.y w loopback y.z 65534 254 224-239 protocolos especiais (IGMP,...) Ir p/ primeira página Subredes Divisões lógicas de uma rede Transparente para o mundo externo Roteamento baseado em pares (rede,subrede) Máscara para determinar a subrede Ir p/ primeira página Subnets masks Valores 32 bits que permite ao destinatário separar netid do hostid Representado em notação decimal com pontos bits em 1 - netid bits em 0 - hostid máscaras defaults = as classes de redes (255.0.0.0, 255.255.0.0, 255.255.255.0) Ir p/ primeira página Exemplo: 143.54.y.z rede ufrgs Subnetmask: 255.255.255.0 - 256 subredes, com 255 hotst cada 143.54.12.1 (castor) 143.54 - endereço de rede (classe B) 12 - endereço de subrede 1 - hostid Ir p/ primeira página Protocolo IP Distribuição de pacotes para outros protocolos Serviço não orientado a conexão (pacotes independentes) best-effort responsabilidade do contúdo é garantido pelos protocolos de alto nível Ir p/ primeira página Protocolo IP Parâmetros MTU - Maximum Transfer Unit Segmentação em subredes com MTUs diferentes Otimizção: depende da rede TTL - Time to Live Tempo que o datagrama pode ficar na rede TTL=0 discarta o datagrama Ir p/ primeira página Datagrama IP 0 8 16 Ver IHL Serviço Identificação TTL 24 Tamanho total Flags Proto 31 Offset frag. Header Checksum IP Origem IP Destino Opções Padding Dados Ir p/ primeira página Datagrama IP Tipo de Serviço Precedência D T R Delay Reliability Throughput Flags DF MF More Fragments Don’t Fragment Ir p/ primeira página Fragmentação Ir p/ primeira página Fragmentação e MTU Ir p/ primeira página Protocolo IP Multiplexação Convenção para auto identificação dos datagramas Protocol Serviço 0 IP - pseudo 1 ICMP 6 TCP 17 UDP Ir p/ primeira página ARP (Address Resolution Protocol) Descobrir o endereço físico de uma máquina na rede local, conheendo apenas o endereço IP. Usa broadcast para perguntar o endereço físico do destinatário das mensagens Encapsulado no frame do nível físico Utiliza uma cache para reduzir o número de consultas Ir p/ primeira página RARP (Reverse Address Resolution Protocol) Descobrir o próprio endereço IP no boot da máquina Também usa broadcast do nível físico Resposta de aceite do endereço no caso de multiplos servidores Ir p/ primeira página Formato ARP /RARP e utilitário arp 0 8 16 Tipo Hardware HLEN PLEN 24 31 Tipo de protocolo Operação Sender HA(octetos 0 à 3) Sender HA(4-5) Sender IP(2-3) SENDER IP (0-1) Target HA(0-1) Target HA(2-5) Target IP(0-3) Ir p/ primeira página ICMP - Internet Control Message Protocol Usado para detectar erros e testar a conectividade Encapsulado em um datagrama IP PING usa ICMP echo request e echo replay utilitário ping ping -t -i 5 rubi.inf Ir p/ primeira página Encapsulamento ICMP Ir p/ primeira página Roteamento e Gateways Gateway - Conhece as redes ligadas ã sua rede local Cada host pode manter tabelas para destinatários específicos Gateway mantém tabelas de roteamento Default Gateway Ir p/ primeira página Default gateway Se IP não pertence a rede local: Tabela local Default gateway Utilitário route Em caso de falha, apenas tráfego local Ir p/ primeira página Roteamento “distribuido” Ir p/ primeira página Tabela de roteamento Ir p/ primeira página Algoritmos de Roteamento (princípios) A rede é vista como um grafo O problema é achar o menor caminho! Ir p/ primeira página Ir p/ primeira página Gateway - Protocolos Utilitários GGP - Gateway-to-Gateway protocol EGP - External Gateway protocol (sistemas autônomos) IGP - Internal Gateway Protocol (gateways do mesmo sistema) RIP ! - Routing Information Protocol Laços no processo de roteamento Ir p/ primeira página UDP - User Datagram Protocol Serviço de datagrama sem conexão (como IP) Usado para troca de dados em redes confiáveis Checagem dos dados no protocolo de aplicação Usa ports para identificar o destinatário Ir p/ primeira página Ports Usado para identidicar a aplicação Macanismo para tornar-se independente da numeração local dos processos O remetente deve conhecer o número de porta do destinatário Existem ports pré-determinadas para os serviços destinatários mais comuns Portas do remetente determinada pelo SisOp Ir p/ primeira página TCP - Transmission Control Protocol Serviço orientado a conexão (préestabelecimento da comunicação) Garante a entrega de pacotes (Acknolegements - ACKs) Comunicação confiável Assegura o sequenciamento Usa checksums Protocolo de comunicação porta-aporta Ir p/ primeira página Usado para aplicações clienteservidor, serviços críticos,... Faz a multiplexação de mensagens para as aplicações Conexão (IP,port) <--> (IP,port) Permite multiplas sessões do mesmo serviço Ir p/ primeira página TCP - Exemplo FTP - port 21 Castor ... castor 1456 castor 1684 rubi 1684 TCP ... ... Caracol caracol 21 castor 1456 caracol 21 castor 1684 caracol 21 rubi 1684 Rubi Ir p/ primeira página TCP - Visão de comunicação Ir p/ primeira página TCP - Confiabilidade Ir p/ primeira página TCP - timeout adaptativo Verifica o tempo de resposta e ajusta o timeout Ir p/ primeira página TCP - Janela deslizante Ir p/ primeira página TCP - Estabelecimento de conexão Ir p/ primeira página TCP - Parâmetros MSS - Maximum segment Size Padronização de ports Controle de Congestionamento Port Serviço 15 netstat 21 ftp 23 telnet 25 smtp (mail) Ir p/ primeira página TCP - Pacote 0 8 16 Porta Origem 24 31 Porta Destino Número de Sequência Número de Acknowledge HLEN Cód Checksum Janela Urgente Dados Ir p/ primeira página Cliente/Servidor Modelo usado para construir aplicações Servidor em número de porta conhecido Aceita requisições e executa serviços Cliente tem número de porta variável Envia requisições e espera resposta Ir p/ primeira página Aplicações FTP - File transfer protocol Telnet Mail SMTP - Simple mail transfer protocol POP - Post Office Protocol NFS - Network File System Ir p/ primeira página Interface Aplic.Transporte API Socket Provê as funções de inicialização do nível de transporte, gerência de portas e primitivas de transmissão/recepção de dados. A associação protocolo/porta é chamada de socket (encaixe, toamda, ponto de conexão) Ir p/ primeira página Orientado a conexão (TCP/streams) socket() Cria um socket bind() Atribui nome listen() Aguarda conexões socket() Espera pelos Clientes Cria um socket accept() connect() Ao aceitar a conexão um novo socket deve ser criado e o original aguarda novas conexões Conecta ao servidor send()/recv() send()/recv() close() close() Encerra a conexão Encerra a conexão Ir p/ primeira página Sem conexão (datagrama/UDP) socket() Cria um socket bind() Atribui nome Espera pelos Clientes socket() Cria um socket sendto()/recvfrom() close() Encerra a conexão sendto()/recvfrom() close() Encerra a conexão Ir p/ primeira página Administração Obter endereços IP Registrar domínio Criar subredes Manter tabelas de configuração Diagnosticar e resolver problemas Ir p/ primeira página Diagnóstico - utilitários ping arp ifconfig netstat tracert tcpdump etherload Ir p/ primeira página Vocabulário Resumo dos termos TCP IP Winsock Subnet mask MTU MSS, ... Ir p/ primeira página Onde obter mais informação Livros Comer, Internetworking with TCP/IP Soares, Redes de Computadores Ethernet, internet, slip, manuais RFCs spot. colorado.edu sunic.sunet.se Servidores WEB (Lycos, etc...) Ir p/ primeira página