TCP-IP J.Netto
Apresentação Conceituação básica Princípio de funcionamento Protocolos de rede e transporte Aplicações e Diagnósticos
Necessidades de uso de redes Compartilhamento de recursos e informações Impressora Disco Rede Supervisório Usuário
Conceito INTERNET Independência tecnológica de rede e de sistema operacional Interconexão universal Confirmação ponto-a-ponto
Internet G G G
Súmula Sub-redes Domínios Modelo Cliente Servidor Introdução Protocolo IP Enderecamento IP ARP ICMP TCP UDP Sub-redes Domínios Modelo Cliente Servidor Protocolo de Aplicação Diagnóstico
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 Internet ISO/OSI S/A/Aplic. Aplicações Transporte TCP Rede IP Enlace Interface de rede Intra rede Físico
Família de protocolos TCP/IP arp rlogin,ftp,... NFS,DNS,.. tracert TCP UDP IP ICMP ARP , Device drivers rede
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
Encapsulamento de dados Quebra em pacotes Tráfego de sequência de bits H4 Dados Dados H4 H3 Dados Dados H3 H2 Dados Dados H2 H1 Dados Dados H1 Hx - Cabeçalho (Header) - Controle Dados - Não tratado pelo nível x
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 FTP SMTP (mail) ICMP TCP UDP IP ARP Outro Protocolo Demultiplexa (tipo) Pacote chega
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)
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)
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 7 8 16 24 31 netid hostid
14 bits para netid e 16 bits para hostid ( até 65534 máquinas) 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 8 16 24 31 1 netid hostid
21 bits para netid e 8 bits para hostid (entre 1 e 254 máquinas) 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 8 16 24 31 1 1 netid hostid
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)
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)
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
Endereços IP - Resumo
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
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)
Subnetmask: 255.255.255.0 - 256 subredes, com 255 hotst cada 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
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 Ver IHL Serviço Tamanho total Identificação Flags 8 16 24 31 Ver IHL Serviço Tamanho total Identificação Flags Offset frag. TTL Proto Header Checksum IP Origem IP Destino Opções Padding Dados
Datagrama IP Tipo de Serviço Flags 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 8 16 24 31 Tipo Hardware Tipo de protocolo HLEN PLEN Operação Sender HA(octetos 0 à 3) SENDER IP (0-1) Sender HA(4-5) Sender IP(2-3) Target HA(0-1) Target HA(2-5) Target IP(0-3)
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: Utilitário route 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 autônomos) IGP - Internal Gateway Protocol (gateways do mesmo sistema) RIP - Routing Information Protocol Utilitários 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 Caracol Castor castor 1456 1684 TCP caracol 21 castor 1684 ... rubi 1684 caracol 21 rubi 1684 Rubi
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 Porta Origem Porta Destino Número de Sequência 8 16 24 31 Porta Origem Porta Destino Número de Sequência Número de Acknowledge HLEN Cód Janela Checksum Urgente Dados
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() Cria um socket Espera pelos Clientes accept() Ao aceitar a conexão um novo socket deve ser criado e o original aguarda novas conexões connect() Conecta ao servidor send()/recv() send()/recv() close() Encerra a conexão close() 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() sendto()/recvfrom() close() Encerra a conexão 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 tracert tcpdump etherload
Vocabulário Resumo dos termos TCP IP Winsock Subnet mask MTU MSS, ...
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...)