Protocolo TCP/IP Origem: Surgiu na década de 60 através da DARPA (para fins militares) - ARPANET. Em 1977 - Unix é projetado para ser o protocolo de comunicação da ARPANET. Em 1980 a ARPANET foi dividida em ARPANET e MILINET. Em 1986 a NFS começa a operar o backbone. Interligação de institutos acadêmicos e de pesquisa. Protocolo TCP/IP Em 1993 foi criado HTTP e o Mosaic. Em 1995 foi permitido tráfego de informações comercias na Internet. No Brasil, a Internet começou em 1989 com instituições acadêmicas. Protocolo TCP/IP Padrões e RFC s IAB (Internet Activities Board) - formado em 1983, coordena as pesquisas e desenvolvimentos dos protocolos TCP/IP. Decide quais protocolos fazem parte da suite TCP/IP. Encorajar a troca entre os principais envolvidos nas pesquisas do TCP/IP e Internet. 1
Protocolo TCP/IP Padrões e RFCs RFCs (Request for Comments) - propostas de protocolos novos e revisados. longos ou curtos; conceitos ou detalhes; padrões ou propostas de protocolos. numerados seqüencialmente, em ordem cronológica. Conexão de Redes Arquitetura Internet FTP, TELNET, SMTP, DNS, SNMP, TCP, UDP IP, ICMP, ARP, RARP Sub-rede de acesso Protocolo TCP/IP Alguns serviços: mail transferência de arquivos login remoto www 2
Protocolo TCP/IP Características: Serviço de entrega de pacote não orientado a conexão; Serviço de transporte seguro; Independência de tecnologia de rede; Interconexão universal; Reconhecimento fim-a-fim; Padrões para protocolos de aplicação. Internet Protocol (IP) Sistema de entrega não orientado à conexão (serviço não confiável). Define a unidade básica de transferência de dados na Internet. Faz a função de roteamento. Formato dos datagramas 0 4 8 16 19 24 31 VERS HLEN TIPO SERVIÇO COMPRIMENTO TOTAL IDENTIFICAÇÃO FLAGS OFFSET FRAGMENTO TEMPO VIDA TIPO CHECKSUM CABEÇALHO ENDEREÇO IP ORIGEM ENDEREÇO IP DESTINO OPÇÕES IP PADDING DADOS DADOS 3
Tipo de Serviço (8 bits) 0 1 2 3 4 5 6 7 Precedência D T R Não usado Precedência: importância do datagrama D: baixo retardo T: alto throughput R: alta segurança Encapsulamento Comprimento máximo do datagrama: 65.535 octetos. Datagrama viaja por qualquer tipo de rede física. cabeçalho IP DADOS cabeçalho DADOS Rede 1 Host A MTU = 1500 R1 Rede 2 MTU = 620 R2 Host B Rede 3 MTU = 1500 Datagrama de 1400 octetos: A -> B Ident. Flags Offsset Flags: More Fragments (MF) Frag1: xxxx 100 0 Don t Fragment (DF) Frag2: xxxx 100 600 Reserved Frag3: xxxx 000 1200 4
Fragmentos - datagrama dividido em vários segmentos. cabeçalho DADOS 1 DADOS 2 DADOS 3 fragmento 1 DADOS 1 Fragmento 1 (ofsset 0) fragmento2 DADOS 2 fragmento3 DADOS 3 Fragmento 2 (ofsset 600) Fragmento 3 (ofsset 1200) Remontagem dos fragmentos Destino remonta os datagramas fragmentados. Desvantagens: A remontagem no destino pode ser ineficiente. Se fragmentos são perdidos, eles não podem ser remontados. Vantagens: Fragmentos são roteados independentemente. Gateways intermediários não armazenam nem remontam datagramas. Controle de Fragmentação Três campos: Identificação, Flags e Offset do Fragmento, controlam fragmentação e remontagerm. Identificação: é copiado quando o datagrama é framentado. Identifica o datagrama. Offset do Fragmento: offset em relação ao datagrama original. Medido em octetos. Inicia em 0. Flags: 2 bits mais baixos controlam fragmentação. 5
FLAGS Primeiro bit: indica se datagrama pode ser fragmentado. Dois bits mais baixos: controlam fragmentação. Tempo de Vida (Time to Live - TTL) Número de máquinas que o datagrama pode passar antes de ser descartado. É decrementado pelos roteadores. Outros campos: Tipo: especifica o protocolo superior. Checksum do cabeçalho: assegura integridade (apenas do cabeçalho). Reduz o tempo de processamento do checksum Protocolos superiores escolhem seus esquemas de checksum. Protocolos superiores precisam adicionar o checksum. Endereços origem e destino: possuem 32 bits e especificam os endereços de origem e de destino do datagrama. Não são alterados durante a transmissão. Padding: utilizado para que o cabeçalho do IP seja múltiplo de 32 bits. 6
Opções do IP: utilizadas para teste e debug. Possui um comprimento variável. São apresentadas continuamente, sem intervalo entre elas. 0 1 2 3 COPY OPTION CLASS 4 5 6 7 OPTION NUMBER COPY: controla como gateways tratam este campo Option Class 0 1 2 3 Significado Controle de datagrama ou rede Reservado para uso futuro Debbuging Reservado para uso futuro Option Class 0 0 2 Option Number 7 9 4 Comprim. variável variável variável Descrição Record route. Usado para traçar uma rota Strict source routing. usado para rotear por um caminho. Internet timestamp. Usado para gravar o timestamp. Processamento no Roteador Se roteador não tem memória suficiente, datagrama é descartado Verificação do Checksum, versão, tamanhos O Checksum é recalculado, se for diferente do datagrama, este é descartado Decremento do TTL Se zero, o datagrama é descartado 7
Pode-se considerar o campo Tipo de Serviço. Se for necessário e permitido, o datagrama pode ser fragmentado. Cria-se um cabeçalho para cada fragmento, copiando as opções, aplicando o novo TTL e o novo Checksum. Tratamento do campo opção. Repasse para a sub-rede destino. Processamento do Host Destino Verificação do Checksum, versão, tamanhos. O Checksum é recalculado, se for diferente do datagrama, este é descartado Se o datagrama é fragmentado, é disparado um temporizador que evitará a espera indefinida dos outros fragmentos do datagrama original. Entrega do campo de dados do datagrama para o processo indicado no campo Tipo. Recursos críticos para o desempenho IP: Largura de banda disponível Memória disponível para buffers Processamento da CPU 8
Endereçamento Endereços possuem 32 bits. Consiste de duas partes: o da esquerda (número da rede) e o da direita (número do host) Classe A: 128 redes e até 16.777.216 hosts. Classe B: 16.384 redes e 65.536 hosts. Classe C: milhões de redes físicas e 256 hosts. Sub-rede: divisão do número do host em sub-rede e host. Classe 1 7 24 A 0 Rede Host 2 14 16 B 1 0 Rede Host 3 21 8 C 1 1 0 Rede Host 4 28 D 1 1 1 0 Endereço Multicast E 5 27 1 1 1 1 0 Reservado para uso futuro Classe A 26.0.0.0 Classe B 131.146.0.0 Classe C 192.31.235.0 11010000 11110101 0011100 10100011 = 208.245.28.163 9
Endereços especiais Os campos Rede e Host possuem significados diferentes quando possuem todos seus bits em 0 ou em 1. Endereço de rede: identifica a própria rede - 145.54.0.0 Endereço de broadcast: todas as máquinas na rede específica - 154.54.255.255 Endereço de broadcast limitado: a rede toda - 255.255.255.255 Endereço de Loopback: a própria máquina - 127.0.0.1 Sub-redes (Subnets) Net Id Host Id Subnet Id Host Id (Subnet) Máscara (Mask): Identifica a porção de bits que é utilizada para identificar a rede e a porção que é utilizada para host. Os bits em 1 representam a parte do Net Id e Subnet Id, enquanto que bits em 0 representam o Host Id (Subnet). Ex.: Classe B - 143.54.0.0 Sub-rede A: 143.54.10.0 Sub-rede B: 143.54.20.0 Máscara: 255.255.255.0 0 7 15 23 31 Octeto 1 Octeto 2 Octeto 3 Octeto 4 Endereço 11001000 00010010 10100000 10 XXXXXX 200. 18. 160. 128-191 Máscara 11111111 11111111 11111111 11 XXXXXX 255. 255. 255. 192 10
Exemplo de sub-rede 192.31.23.32 (00100000) 192.31.23.96 (01100000) Classe C: 192.31.23.0 Máscara: 255.255.255.224 (11100000) 192.31.23.128 (10000000) Para uma rede com máscara: 255.255.255.192 Identificação da rede: 200.18.160.0 200.18.160.64 200.18.160.128 200.18.160.192 Endereços de broadcast: 200.18.160.63 200.18.160.127 200.18.160.191 200.18.160.255 Possíveis endereços das estações: 200.18.160.[1-62] 200.18.160.[65-126] 200.18.160.[129-190] 200.18.160.[193-254] Roteamento IP Como enviar um datagrama passando por múltiplas redes físicas. Como selecionar rotas: carga da rede tamanho do datagrama tipo de serviço menor caminho 11
Revisando... Host B Para outros destinos Para alguns destinos R 1 R 2 Host A Host C Exitem duas formas de roteamento: direto Host B Host A indireto Host B R 1 Host A Tabela de Roteamento: armazena informações sobre possíveis destinos e como alcançá-los. Network 10.0.0.0 20.0.0.5 30.0.0.6 Network Network R 1 20.0.0.0 R 2 30.0.0.0 R 3 40.0.0.7 Network 40.0.0.0 10.0.0.5 20.0.0.6 30.0.0.7 Tabela do R2: 10.0.0.0 20.0.0.5 20.0.0.0 Entrega diretamente 30.0.0.0 Entrega diretamente 40.0.0.0 30.0.0.7 12
Rota Default: diminui o tamanho da tabela de roteamento. Não precisa colocar na tabela todos os endereços de todas as redes as quais a máquina pode se conectar. Algoritmo de roteamento: Obtém endereço IP destino (Id) do datagrama; Computa endereço IP da rede destino (Ir); Se Ir for o endereço de uma rede diretamente conectada envia o datagrama para o destino sobre esta rede; (isto envolve mapear Id para um endereço físico, encapsular o datagrama e enviar o quadro.) Senão se Id for uma rota específica para um host roteia o datagrama como especificado na tabela; Senão se Ir estiver na tabela de roteamento roteia o datagrama como especificado na tabela; Senão se uma rota default foi especificada roteia o datagrama para o roteador default; Senão declara um erro de roteamento. 13
Protocolo ICMP 14