Redes de Computadores Protocolo TCP/IP Profa. Priscila Solís Barreto
Internet G G G
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
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
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)
Organização em camadas ISO/OSI Internet S/A/Aplic. Aplicações Transporte TCP Rede IP Enlace Físico Interface de rede Intra rede
Família de protocolos TCP/IP arp rlogin,ftp,... NFS,DNS,.. TCP UD P ICMP IP ARP, Device drivers rede tracert
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
Especificação do Protocolo
Encapsulamento de dados Quebra em pacotes Tráfego de sequência de bits H4 Dados H3 Dados H1 Dados H4 Dados H2 Dados Dados Dados Dados Hx - Cabeçalho (Header) - Controle Dados - Não tratado pelo nível x H3 H2 H1
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
Pacotes auto identificados Telnet ICMP FTP SMTP (mail) TCP UDP IP ARP Demultiplexa (tipo) Pacote chega Outro Protocolo
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
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)
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
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
Datagrama IP 0 8 16 Ver IHL Serviço Identificação TTL Proto 24 Tamanho total Flags Offset frag. Header Checksum IP Origem IP Destino Opções Padding Dados 31
Datagrama IP Tipo de Serviço Precedência D T R Delay Reliability Throughput Flags DF MF More Fragments Don t Fragment
Fragmentação
Fragmentação e MTU
Protocolo IP - Multiplexação Convenção para auto identificação dos datagramas
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
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
Formato ARP /RARP e utilitário arp 0 8 16 Tipo Hardware HLEN PLEN 24 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) 31
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
Encapsulamento ICMP
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
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
Roteamento distribuido
Tabela de roteamento
Algoritmos de Roteamento (princípios) A rede é vista como um grafo O problema é achar o menor caminho!
Gateway - Protocolos GGP - Gateway-to-Gateway protocol EGP - External Gateway protocol (sistemas Utilitário autônomos) s IGP - Internal Gateway Protocol (gateways do mesmo sistema) RIP - Routing Information Protocol! Laços no processo de roteamento
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
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
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-a-porta
Usado para aplicações cliente-servidor, 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
TCP - Exemplo FTP - port 21 Castor... castor 1456 castor 1684 rubi Rubi 1684 TCP...... Caracol caracol 21 castor 1456 caracol 21 castor 1684 caracol 21 rubi 1684
TCP - Visão de comunicação
TCP - Confiabilidade
TCP - timeout adaptativo Verifica o tempo de resposta e ajusta o timeout
TCP - Janela deslizante
TCP - Estabelecimento de conexão
TCP - Parâmetros MSS - Maximum segment Size Padronização de ports Controle de Congestionamento
TCP - Pacote 0 8 16 Porta Origem 24 Porta Destino Número de Sequência Número de Acknowledge HLEN Cód Checksum Janela Urgente Dados 31
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
Aplicações FTP - File transfer protocol Telnet Mail SMTP - Simple mail transfer protocol POP - Post Office Protocol NFS - Network File System
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)
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
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
Administração Obter endereços IP Registrar domínio Criar subredes Manter tabelas de configuração Diagnosticar e resolver problemas
Diagnóstico - utilitários ping arp ifconfig netstat traceroute tcpdump wireshark