TCP/IP PROGRAMAÇÃO 1. Histórico 2. Conceitos básicos 3. Endereçamento Internet 4. Modelo OSI 5. Modelo TCP/IP 6. Tecnologia de redes 7. Protocolo ARP 8. Protocolo IP 9. Fragmentação. 10. Interconexão de rede 11. Roteamento 12. Protocolo ICMP 14. Protocolo UDP 15. Protocolo TCP 16. Configuração 16. Serviços TCP/IP. HISTÓRICO. 1962-1969. USA x URSS GUERRA FRIA GRANDE DE DISPONIBILIDADE DE RECURSOS FINANCEIROS. USA ANTECIPANDO A GUERRA ATÔMICA MONTA A PRIMEIRA REDE DISTRIBUÍDA, EVITANDO O CONTROLE CENTRALIZADO DO PROCESSO DE COMUNICAÇÃO INFORMÇÃO PARADA PARCIAL. REDE ARPANET - REDE DE PACOTE Stanford Research Institute University of California at Santa Barbara The University of Utah University of California at Los Angeles REDE ARPANET HISTÓRICO 1969-1973 ARPANET ESTAVEL KEN THOMPSON, DENNIS RITCHIE E JOSEPH OSSANNA NOS LABORATÓRIOS DA BELL LABSDESENVOLVERAM A PRIMEIRA VERSÃO UNIX PARA O EQUIPAMENTO DA DEC - PDP-7 EM ASSEMBLER DENNIS RITCHIE E BRIAN KERNINGHAN CRIARAM A LINGUAGEM C UNIX É REESCRITO EM LINGUAGEM C. HISTÓRICO 1972-1975 ARPANET COM 40 HOSTS ARPANET FUNCIONAL MAS COM PERÍODOS DE CRASH EM SOBRECARG; DARPA PROCURA PROTOCOLO MAIS ESTÁVEL PARA A REDE CRIAÇÃO DO TCP/IP; CRIAÇÃO DO CORREIO ELETRÔNICO HISTÓRICO. 1980 DARPA INICIOU A CONVERSÃO A CONVERSÃO DA REDE DE PESQUISA PARA O NOVO PROTOCOLO TCP/IP. 1983 DARPA TERMINOU A CONVERSÃO E DETERMINOU QUE QQUER NOVA MÁQUINA DA REDE DEVE UTILIZAR O TCP/IP. DIVISÃO DA REDE: PESQUISA = ARPANET E MILITAR = MILNET HISTÓRICO. INTERESSE DO DARPA EM MELHORAR O PROTOCOLO, LIBEROU O PROTOCOLO PARA UNIVERSIDADES. ÉPOCA EM QUE A MAIORIA DAS UNIVERSIDADES UTILIZAVAM UNIX DE BERKELEY (BSD UNIX). BOLT BERANEK E NEWMAN IMPLEMENTARAM E INTEGRARAM O TCP/IP NO UNIX BSD. A PARTIR DESTE PONTO VÁRIAS MÁQUINAS FORAM COLOCADAS EM REDE E COMUNICANDO ATRAVÉS DO TCP/IP. HISTÓRICO. UNIX BSD GANHOU MAIS FORÇA COM O TCP/IP E OS CONJUNTOS DE UTILITÁRIOS DE REDE. UNIX FICOU MULTIUSUÁRIO. DESENVOLVIMENTO DE UM MÉTODO DE COMUNICAÇÃO QUE PERMITE UM PROGRAMA DE APLICAÇÃO ACESSAR UM PROTOCOLO DE COMUNCIAÇÃO - SOCKET. CARACTERÍSTICAS GERAIS DO TCP/IP ATUA A PARTIR DA CAMADA 3 DO MODELO OSI; É INDEPENDENTE DA TECNOLOGIA DE REDE DE NÍVEL 2 (ETHERNET, TR, FRAME-RELAY) NÃO UTILIZA CONFIRMAÇÃO NA CAMADA DE REDE UTILIZA CONFIRMAÇÃO NA CAMADA TRANSPORTE É ROTEÁVEL POSSUI PROTOCOLO DE CONTROLE DE REDE É TOTALMENTE PADRONIZADO - RFC DE REQUEST FOR COMMENT - RFC SÃO DOCUMENTOS QUE DESCREVEM O FUNCIONAMENTO DE QQUER PROTOCOLO QUE ESTÁ NA INTERNET. Modelo TCP/IP Aplicação Mensagens da aplicação Transporte Inter-rede Datagramas IP Rede HDLC, X.25, PPP, SLIP, Ethernet, Token-Ring, FDDI, ATM, LLC, NDIS, ... INTERCONEXÃO DE REDE Host A Host A Mensagem idêntica Aplicação Aplicação Pacote idêntico Transporte Transporte Roteador Inter-Rede Datagrama idêntico Inter-rede Rede Rede Quadro idêntico Rede Física 1 Datagrama idêntico Rede Inter-Rede Rede Quadro idêntico Rede Física 2 COMPARATIVO Arquitetura OSI Arquitetura TCP/IP Aplicação Apresentação Aplicação Sessão Transporte Rede Enlace Físico Transporte Inter-rede Rede COMPARATIVO Aplicação DS, MHS FTAM ISO Apresentação Presentation Sessão Shell DNS NCP S M T P F T P ping H T T P socket Transporte ISO Transport C4 SPX TCP, UDP Rede X.25 SNDCP IPX IP, ICMP Físico POP ISO Session Winsock Enlace N F S LLC IEEE 802.2 IEEE 802.3 IEEE 802.5 DD MLID Binding A R DD NDIS P Ethernet Ethernet LSL T e l n e t TLI Unix PPP X.25 Ethernet Serial EXEMPLO EXEMPLO EXEMPLO MODELO TCP/IP SMTP/ DNS FTP TELNET HTTP ... Transporte UDP TCP Aplicação IP ICMP ARP RARP IGMP Interface de Hardware 802.3 802.4 802.5 802.6 Meio Físico X.25 Inter-rede Rede CONCEITOS BÁSICOS DO TCP/IP SERVIÇO ORIENTADO A CONEXÃO lado A ! ! ! ! lado B 1 discar número 2 tira telefone do gancho 3 ! responde “alô” 4 responde alô ! 5 idenfica-se ! 6 ! identifica-se 7 inicia conversação ! ... ******Troca de Informações ****** 8 encerra conexão! 8 ! encerra conexão. SERVIÇO ORIENTADO A DATAGRAMA (S/CONEX) 1. ESCREVER UMA CARTA 2. COLOCAR NO ENVELOPE 3. PREECHER DADOS DE DESTINO/EMISSOR 4. ENTREGAR NO CORREIO 5. CORREIO DESPACHA ATRAVÉS DE UM MEIO DE LOCOMOÇÃO (AVIÃO, NAVIO, CAMINHÃO...) 6. CORREIO ENTREGA NA CX POSTAL 7. CX POSTAL É VERIFICADO PERIODICAMENTE. SERVIÇO COM CONFIANÇA EXISTE A GARANTIA DE ENTREGA DA MENSAGEM, EXEMPLO: CARTA REGISTRADA, ENCOMENDA DHL SERVIÇO SEM CONFIANÇA. NÃO EXISTE A GARANTIA DA MENSAGEM, EXEMPLO: CARTA COMUM MODELO DE ESTRUTURA EM CAMADA ISO/OSI COMPARATIVO MODELO OSI x TCP/IP ESTRUTURA DO PROCESSO DE ENCAPSULAMENTO CONJUNTO DE PROTOCOLOS TCP/IP ENDEREÇAMENTO INTERNET ENDEREÇAMENTO INTERNET ENDEREÇO INTERNET = REDE + HOSTS CADA ENDEREÇO É CONSTITUÍDO DE 32 BITS CADA MÁQUINA PODE TER UM OU MAIS ACESSO A REDE (INTERFACE) E, PARA CADA ACESSO DEVE CORRESPONDER UM ENDEREÇO ENDEREÇOS DE UMA REDE INTERNET SÃO GLOBALMENTE ÚNICOS SE UM COMPUTADOR MUDA DE SEGMENTO LÓGICO OU FÍSICO, SEU ENDEREÇAMENTO DEVE MUDAR. CONSTITUIÇÃO DE UM ENDEREÇAMENTO INTERNET EXEMPLO DE ENDEREÇAMENTO INTERNET 10101100 00110010 00001010 01100100 0 1 2 3 TAMBÉM REPRESENTADO POR 172 . 0 50 1 . 10 2 . 100 3 ELEMENTOS DE UM ENDEREÇO INTERNET NETWORK ID. IDENTIFICA UM SEGMENTO LÓGICO DE REDE. 172.16.0.0 Ethernet Bridge Ethernet Ethernet 172.16.0.0 ELEMENTOS DE UM ENDEREÇO INTERNET HOST ID. IDENTIFICA UM HOST SEGMENTO LÓGICO DE REDE. 172.16.1.1 172.16.0.0 Ethernet 172.16.4.4 172.16.1.1 Bridge Ethernet Ethernet 172.16.0.0 172.16.4.4 CLASSES DE ENDEREÇAMENTO. CLASSE A - UM BYTE PARA NETID (REDE) - TRES BYTES PARA HOSTID (HOST) - UTILIZADO EM LOCAIS QUE POSSUEM POUCAS REDES (SEGMENTOS LÓGICOS) E MUITOS HOSTS NESTAS REDES - VL. DO BYTE 1: 1 ATÉ 126 - EXEMPLOS - 1.0.0.0, 2.0.0.0, 126.0.0.0 - TOTAL REDES - 126. - TOTAL DE HOST POR NETID - 16777214 CLASSES DE ENDEREÇAMENTO. CLASSE B - DOIS BYTES PARA NETID (REDE) - DOIS BYTES PARA HOSTID (HOST) - UTILIZADO EM LOCAIS QUE POSSUEM QTD MEDIA REDES (SEGMENTOS LÓGICOS) E QTD MEDIA DE HOSTS NESTAS REDES - VL DO BYTE 1 - 128 ATÉ 191 - EXEMPLOS - 128.1.0.0, 128.2.0.0, 191.1.0.0 - TOTAL REDES - 65536 - TOTAL DE HOST POR NETID - 65534 CLASSES DE ENDEREÇAMENTO. CLASSE C - TRES BYTES PARA NETID (REDE) - UM BYTE PARA HOSTID (HOST) - UTILIZADO EM LOCAIS QUE POSSUEM MUITAS REDES (SEGMENTOS LÓGICOS) E POUCOS HOSTS NESTAS REDES - VL. DO BYTE 1: 192 ATÉ 223 - EXEMPLOS - 192.1.1.0, 192.1.2.0, 223.1.1.0 - TOTAL REDES - 16777216 - TOTAL DE HOST POR NETID - 254 CLASSES ESPECIAIS DE ENDEREÇAMENTO. CLASSE D - VL DO BYTE 1: 224 ATE 239 CLASSE E - VL DO BYTE 1: 240 ATE 247 ENDEREÇO DE LOOPBACK. - VL DO BYTE 1: 127 - TODO HOST POSSUI O ENDEREÇO 127.0.0.1 - UTILIZADO PARA TESTES INTERNOS EXEMPLO DE UMA REDE TCP/IP 172.16.1.1 Bridge Ethernet 172.16.1.50 172.16.0.0 Ethernet 172.16.4.4 Router 172.17.1.50 172.17.0.0 Token-ring 172.17.4.4 ADDRESS RESOLUTION PROTOCOL - ARP IP 172.16.1.1 ARP - ADDRESS RESOLUTION MAC 00 0D 0A 4A E2 2B PROTOCOL Ethernet MAC 00 0D 0A 4F 77 82 IP 172.16.4.1 PROTOCOLO ARP. DUAS MÁQUINAS NA MESMO SEGMENTO LÓGICO PODEM SE COMUNICAR SOMENTE SE ELES CONHECEM O ENDEREÇO FÍSICO (MAC) DE DESTINO PROBLEMA COMO MAPEAR O ENDEREÇO IP PARA UM ENDEREÇO MAC CORRETO ???? A MÁQUINA COLIBRI QUER COMUNICAR COM O TUCANO IP 172.16.1.1 ping 172.16.4.1 colibri MAC 00 0D 0A 4A E2 2B Ethernet MAC 00 0D 0A 4F 77 82 IP 172.16.4.1 tucano ENCAPSULAMENTO ETHERNET PRINCÍPIO DE FUNCIONAMENTO A ESTAÇÃO COLIBRI ENVIA UM PACOTE “BROADCAST ETHERNET” CONTENDO A MENSAGEM ARP PERGUNTANDO SE ALGUÉM NA REDE POSSUI UM ENDEREÇO IP ESPECÍFICO. A ESTAÇÃO TUCANO RECEBENDO O PACOTE ETHERNET PROCESSA A MENSAGEM ARP E VERIFICA QUE O ENDEREÇO PROCURADO É O SEU, NESTE CASO DEVOLVE UMA RESPOSTA PARA A ESTAÇÃO EMISSORA DO PEDIDO FORNECENDO O SEU ENDEREÇO MAC, CASO O ENDEREÇO PROCURADO NÃO CORRESPONDE AO SEU O PACOTE É DESCARTADO. IP 172.16.1.1 ping 172.16.4.1 colibri Ethernet IP 172.16.4.1 tucano ENCAPSULAMENTO ARP PACOTE ARP CACHE DE MAPEAMENTO CADA ESTAÇÃO MANTÉM UM “CACHE” DOS MAPEAMENTOS DESCOBERTOS, ESTE CACHE DEVE SER ATUALIZADO PERÍODICAMENTE OTIMIZAÇÃO DE OPERAÇÃO CADA ESTAÇÃO QUE SOLICITA UM ENDEREÇO FÍSICO, ENVIA O SEU PRÓPRIO MAPEAMENTO DE ENDEREÇO IP, PARA AGILIZAR AS RESPOSTAS E ATUALIZAÇÃO DO CACHE DAS DEMAIS ESTAÇÕES. DESCRIÇÃO DE CAMPOS HARDWARE TYPE ESPECIFICA O TIPO DA INTERFACE FÍSICA (1 PARA ETHERENT) PROTOCOL TYPE ESPECIFICA O PROTOCOLO DA CAMADA DE REDE (800 PARA IP) HLEN ESPECIFICA O COMPRIMENTO DO ENDEREÇO FÍSICO (6 PARA ETHERENET) PLEN ESPECIFICA O COMPRIMENTO DO ENDEREÇO DE REDE (4 PARA IP) OPERATION ESPECIFICA O TIPO DE MENSAGEM 1 2 3 4 Arp Request Arp Response Rarp Request Rarp Response HA HARDWARE ADDRESS IP INTERNET ADDRESS COMANDO ARP arp -a Interface: 172.16.244.2 Internet Address 172.16.244.78 172.16.245.134 Physical Address 00-60-97-6d-38-0d 00-10-4b-87-2f-ad Type dynamic dynamic INTERNET PROTOCOL - IP PROCOTOLO IP O PROTOCOLO IP É UTILIZADO NA CAMADA DE REDE DA ARQUITETURA INTERNET. PERMITE A COMUNICAÇÃO ENTRE MÁQUINAS, DE FORMA INDEPENDENTE DA ESTRUTURA DE COMUNICAÇÃO SUBJACENTE. (ETHERNET, TOKEN-RING, FDDI, FR, SLIP, PPP, ETC.) CARACTERÍSTICAS ARQUITETURAIS UTILIZA O SISTEMA DE ENTREGA DE PACOTE ENTREGA NÃO-CONFIÁVEL (UNRELIABLE) : O PACOTE PODE SER PERDIDO, DUPLICADO, SOFRER ATRASO OU ENTREGUE FORA DE ORDEM SERVIÇO SEM CONEXÃO (CONECTIONLESS), OS PACOTES SÃO TRATADOS DE MANEIRA INDEPENDENTE NÃO HÁ RETRANSMISSÃO DE PACOTES PROPÓSITO DO INTERNET PROTOCOL (IP) DEFINE A UNIDADE BÁSICA DE TRANSFERÊNCIA DE DADOS PELA INTERNET. DESTA FORMA ESPECIFICA A FORMA EXATA DE TODOS OS DADOS QUE PASSAM PELA INTERNET EXECUTA FUNÇÃO DE ROTEAMENTO, ESCOLHENDO OS CAMINHOS QUE OS DADOS IRÃO TRAFEGAR INCLUI UM CONJUNTO DE REGRAS QUE EMBUTEM O CONCEITO DE ENTRAGA DE PACOTE SEM CONFIANÇA. UNIDADES DE DADOS DO PROTOCOLO IP DATAGRAMAS UNIDADES DE DADOS COM TODAS AS INFORMAÇÕES NECESSÁRIAS PARA O SEU ENCAMINHAMENTO ATÉ O DESTINO FINAL FORMATO GERAL CABEÇALHO + ÁREA DE DADOS FORMATO DO DATAGRAMA (PACOTE) IP FUNÇÕES GERAIS DE CONTROLE VERS ESPECIFICA A VERSÃO DO PROTOCOLO IP SENDO UTILIZADO. A VERSÃO ATUAL É 4. HLEN ESPECIFICA O COMPRIMENTO DO HEADER IP EM MÚLTIPLOS DE 32 BITS. TOTAL LENGTH FORNECE O COMPRIMENTO TOTAL DO DATAGRAMA EM BYTES, INCLUINDO O CABEÇALHO E DADOS, NO MÁXIMO 65536 BYTES. FUNÇÕES GERAIS DE CONTROLE TIPO DE SERVIÇO Precedence - Precedencia do datagrama com valores de 0 a 7. D - Solicita serviço em baixo atraso T - Solicita serviço de alta vazão R - Solicita serviço de alta confiabilidade CAMPOS DE CONTROLE DE FRAGMENTAÇÃO E REMONTAGEM IDENTIFICATION UM INTEIRO QUE IDENTIFICA O DATAGRAMA FLAGS NO FRAGMENT BIT MORE FRAGMENT BIT FRAGMENT OFFSET DEFINE O DESLOCAMENTO DO FRAGMENTO EM RELAÇÃO AO INÍCIO DA MENSAGEM. OUTROS CAMPOS DE CONTROLE TIME TO LIVE (TTL) DEFINE O TEMPO MÁXIMO DE PERMANENCIA DE UM DATAGRAMA NA REDE, INCLUINDO O TEMPO DE TRANSMISSÃO E O TEMPO DE PROCESSAMENTO PELOS GATEWAYS PROTOCOL DEFINE O PROTOCOLO OU ENTIDADE RESPONSÁVEL PELOS DADOS CONTIDOS NA ÁREA DE DADOS (O PROTOCOLO QUE SENDO TRANSPORTADO PELO IP). OUTROS CAMPOS DE CONTROLE HEADER CHECKSUM SOMA BINÁRIA DO CABEÇALHO IP, SEM INCLUIR OS DADOS SOURCE IP ADDRESS E DESTINATION IP ADDRESS CONTÉM OS ENDEREÇOS IP DE ORIGEM E DE DESTINO DO DATAGRAMA. ESTES ENDEREÇOS NUNCA SÃO MUDADOS AO LONGO DA ROTA. MAXIMUM TRANSMITION UNIT - MTU MTU O DATAGRAMA É TRANSPORTADO NA ÁREA DE DADOS DE UM FRAME O TAMANHO MÁXIMO DE UM DATAGRAMA DEVE RSER ADEQUADO A TECNOLOGIA DO FRAME MTU É O TAMANHO MÁXIMO DA AREA DE DADOS DE UM FRAME - Ethernet – 64 - 1500 bytes - Token-Ring – 17000 bytes - FDDI – 4470 bytes MTU = TAMANHO MÁXIMO DE UM DATAGRAMA MTU x ENCAPSULAMENTO FRAGMENTAÇÃO DE DATAGRAMA FRAGMENTAÇÃO DE DATAGRAMA FRAGMENTAÇÃO É O PROCESSO DE ADAPTAR O TAMANHO DO DATAGRAMA IP AO TAMANHO DE QUADRO OFERECIDO PELAS TECNOLOGIAS DE NÍVEIS INFERIORES. FRAGMENTAÇÃO FRAGMENTAÇÃO CONSIDERAÇÕES NO PROCESSO DE REMONTAGEM A REMONTAGEM DO DATAGRAMA É FEITO SOMENTE NO DESTINO FINAL CADA PEDAÇO DO DATAGRAMA CONSTITUI UM NOVO DATAGRAMA, DESTA MANEIRA, PODE VIAJAR POR CAMINHOS INDEPENDENTES ATÉ O DESTINO SE UMA PARTE DO DATAGRAMA É PERDIDO, TODO O DATAGRAMA É DECARTADO EXISTE UM TEMPO DE CHEGADA DE TODAS AS PARTES DO DATAGRAMA, APÓS EXPIRADO ESTE TEMPO, TODO O DATAGRAMA É DESCARTADO INTERCONEXÃO DE REDE E ROTEAMENTO INTERCONEXÃO DE REDES O SENTIDO ORIGINAL DO TERMO “INTERNET” REFERE-SE A UMA COLEÇÃO DE REDES LOCAIS E DE LONGA DISTÂNCIA, INTERLIGADOS POR UM CONJUNTO ARBITRÁRIO DE EQUIPAMENTOS INTERMEDIARIOS QUE DENTRO DESTA ARQUITETURA SÃO DENOMINADOS “IP ROUTER”, OU SIMPLESMENTE “ROUTER”. EXEMPLO DE UMA REDE INTERNET Desktop System Desktop System Token-ring Ethernet Router Router Desktop System Ethernet FDDI Ring Router Ethernet Desktop System Desktop System DENOMINAÇÕES EM INTERCONEXÃO DE REDES. O ROUTER É A ÚNICA FORMA DE INTERCONEXÃO DE DUAS REDES. ROUTING - PROCESSO DE ESCOLHA DE UM CAMINHO ROUTER - MÁQUINA QUE FAZ O PROCESSO DE ESCOLHA DO CAMINHO. INTERCONEXÃO ATRAVÉS DE ROUTER Desktop System Ethernet Token-ring FDDI Ring ROUTER Ethernet Desktop System Desktop System Desktop System ROTEAMENTO INTERNET UM COMPUTADOR POSSUI TANTOS ENDEREÇOS IP QUANTOS FOREM OS SEUS ACESSOS FÍSICOS A REDE DE TRANSMISSÃO DE INFORMAÇÃO QQUER MÁQUINA QUE POSSUA MAIS DE UM ENDEREÇO IP, PODE ATUAR COMO UM ROTEADOR IP O ROTEAMENTO DO DATAGRAMA É FEITO POR UM ALGORÍTIMO. ROTEAMENTO INTERNET IDEALMENTE O ALGORITMOS DE ROTEAMENTO DEVE LEVAR EM CONSIDERAÇÃO A CARGA DA REDE, TAMANHO DO DATAGRAMA E TIPO DE SERVIÇO, ANTES DE ESCOLHER O MELHOR CAMINHO EXISTEM ALGORITMOS DE ROTEAMENTO QUE SÃO SOFISTICADOS, ENTRETANTO EXISTEM OUTROS QUE LEVAM EM CONSIDERAÇÃO SOMENTE O MENOR CAMINHO. Desktop System 172.16.0.0 Ethernet 172.16.1.1 172.18.1.1 Token-ring FDDI Ring 172.17.1.1 172.18.0.0 Tower System 172.17.1.1 172.17.0.0 Ethernet Desktop System Desktop System 172.17.0.0 Desktop System LIGAÇÃO ENTRE COM DIFERENTE CARACTERÍSTICAS. 172.16.0.0 Desktop System Ethernet LINK A MTU=1500 PPP 64Kbps 172.17.1.1 Router 2 10. . 0 2 72. 1 1 10. . 0 .2 172 172.16.1.1 Router Ethernet 172 .21 .10 .1-1 72. 20. 10. 2 LINK B MTU=1000 FR 256Kbps Desktop System 172.17.0.0 Router 172.17.1.2 LIGAÇÃO COM 1/3 PASSOS Ethernet LINK A MTU=1500 PPP 64Kbps 172.16.1.1 Router 2 10. . 0 2 72. 1 1 2 10. . 0 2.2 7 1 0.1 1 . .21 2 7 1 0. 0.1 2 . 172 172.17.1.1 Router Desktop System Ethernet 172.17.0.0 172.23.0.0 LINK B MTU=1000 FR 256Kbps 172.19.1.1 172.19.1.2 172.16.0.0 Desktop System Router LINK C MTU=1000 FR 256Kbps Token-ring Router 172.23.10.10 Router 172.23.20.20 TIPOS DE ROTEAMENTO DIRETO - DE UMA MÁQUINA PARA OUTRA QUANTO AMBOS ESTÃO CONECTADOS NA MESMA REDE FÍSICA OU LÓGICA INDIRETO - OCORRE QUANDO A MÁQUINA DE DESTINO NÃO ESTÁ CONECTADO DIRETAMENTE NA MESMA REDE FÍSICA OU LÓGICA, FORÇANDO O EMISSOR A PASSAR O DATAGRAMA DIRETAMENTE PARA UM ROUTER. ROTEAMENTO DIRETO - COLIBRI/CORVO CANARIO/PARDAL COLIBRI 172.16.3.2 CORVO 172.16.5.5 Desktop System Desktop System 172.16.0.0 Ethernet 172.16.1.1 Router 172.17.1.1 Token-ring Desktop System Desktop System CANARIO 172.17.10.34 172.17.0.0 PARDAL 172.17.1.50 ROTEAMENTO INDIRETO - COLIBRI/PARDAL CORVO/CANÁRIO COLIBRI 172.16.3.2 CORVO 172.16.5.5 Desktop System Desktop System 172.16.0.0 Ethernet 172.16.1.1 Router 172.17.1.1 Token-ring Desktop System Desktop System CANARIO 172.17.10.34 172.17.0.0 PARDAL 172.17.1.50 DETERMINAÇÃO SE ROTEAMENTO É DIRETO OU INDIRETO PERGUNTA. O QUE FAZER PARA DESCOBRIR SE O ENDEREÇO DE DESTINO ESTÁ CONECTADO DIRETAMENTE NA REDE ???? RESPOSTA ENDEREÇO IP É CONSTITUÍDO DE NETID + HOSTID PARA VERIFICAR SE O ENDEREÇO DESTINO ESTÁ CONECTADO DIRETAMENTE A REDE, O EMISSOR EXTRAI A PORÇÃO “NETID” DO ENDEREÇO IP DE DESTINO E COMPARA COM A PORÇÃO “NETID” DO PRÓPRIO ENDEREÇO IP. SE ESTA COMPARAÇÃO FOR VERDADEIRA, O FRAME PODE SER ENVIADO DE FORMA DIRETA, CASO CONTRÁRIO, A ENTREGA DEVE SER EFETUADA DE FORMA INDIRETA. COLIBRI 172.16.3.2 00-2A-DE-12-34-CD CORVO 172.16.5.5 Desktop System Desktop System 172.16.0.0 Ethernet 172.16.1.1 00-4B-45-00-44-78 00-44-67-99-12-C0 Router 172.17.1.1 00-2A-DE-12-34-CD Token-ring Desktop System Desktop System CANARIO 172.17.10.34 172.17.0.0 PARDAL 172.17.1.50 PROCESSO DE ENTREGA DE DATAGRAMA DE FORMA DIRETA 1. MAPEAR ENDEREÇO IP PARA ENDEREÇO MAC 1.1 CONSULTA TABELA ARP 1.2 ARP REQUEST SE NECESSÁRIO 1.3 ARP RESPONSE SE NECESSÁRIO 2. ENCAPSULA O DATAGRAMA EM UM FRAME 3. MANDA O FRAME DIRETAMENTE PARA O DESTINO PERGUNTA SE O NETID NÃO ESTÁ NA MESMA REDE, O QUE FAZER COM O DATAGRAMA ?? RESPOSTA. DIRECIONAR O DATAGRAMA PARA O DEFAULT GATEWAY (DG) QUE IRÁ ENCAMINHAR O DATAGRAMA PARA O LOCAL CORRETO SE POSSÍVEL DEFAULT GATEWAY É UM ELEMENTO DA REDE QUE ESTÁ LOCALIZADO NO MESMO SEGMENTO FÍSICO OU LÓGICA, QUE TÊM A FUNÇÃO DE ENTREGAR DATAGRAMAS DA REDE LOCAL PARA OUTRAS REDES E TAMBÉM ENTREGAR DATAGRAMAS VINDO DE OUTRAS REDES PARA A REDE LOCAL. COLIBRI 172.16.3.2 CORVO 172.16.5.5 Desktop System Desktop System 172.16.0.0 Ethernet 172.16.1.1 DEFAULT GATEWAY DA REDE 172.16.0.0 É O ENDEREÇO 172.16.1.1 DEFAULT GATEWAY DA REDE 172.17.0.0 É O ENDEREÇO 172.17.1.1 Router 172.17.1.1 Token-ring Desktop System Desktop System CANARIO 172.17.10.34 172.17.0.0 PARDAL 172.17.1.50 DEFAULT GATEWAY ENTREGA INDIRETA DO DATAGRAMA. 1. ESTAÇÃO DESCOBRE QUE O ENDEREÇO DE DESTINO NÃO ESTÁ CONECTADO DIRETAMENTE NA REDE 2. MAPEIA ENDEREÇO IP/MAC DO DEFAULT GATEWAY DA REDE. 2.1 CONSULTA TABELA ARP 2.2 ARP REQUEST SE NECESSÁRIO 2.3 ARP RESPONSE SE NECESSÁRIO 3. ENCAPSULA O DATAGRAMA NO FRAME E MANDA PARA O DG 4. O FRAME CHEGA NO DG 5. O DG PROCESSA O DATAGRAMA E REPASSA PARA O TCP/IP 6. EXTRAI A PORÇÃO DE “NETID” DO ENDEREÇO DE DESTINO 7. O ALGORITMO DE ROTEAMENTO ESCOLHE UM CAMINHO COM BASE NA PORÇÃO “NETID” PARA O PRÓXIMO ROUTER DIRECIONAR O DATAGRAMA ATÉ O DESTINO, OU SE A REDE ESTIVER DIRETAMENTE CONECTADO, O DATAGRAMA É ENTREGUE DIRETAMENTE. EXEMPLO DE ROTEAMENTO INDIRETO ping 172.17.10.34 COLIBRI 172.16.3.2 00-2A-DE-12-34-CD CORVO 172.16.5.5 Desktop System Desktop System 172.16.0.0 Ethernet 172.16.1.1 00-4B-45-00-44-78 00-44-67-99-12-C0 Router 172.17.1.1 00-2A-DE-12-34-CD Token-ring Desktop System Desktop System CANARIO 172.17.10.34 172.17.0.0 PARDAL 172.17.1.50 FRAMES GERADOS NO ROTEAMENTO INDIRETO TABELAS DE ROTEAMENTO PERGUNTA APÓS RECEBER UM DATAGRAMA VINDO DE UMA ESTAÇÃO, COMO O DG FAZ PARA ENTREGAR O DATAGRAMA SE O NETID DE DESTINO NÃO ESTÁ DIRETAMENTE CONECTADO AO DG ???? EXPANDINDO A REDE 00-33-44-55-66-77 172.18.10.10 TR34 ROUTER CISCO 00-AA-BB-CC-DD-EE 172.18.20.20 TR55 ROUTER 3COM Token-ring 22-11-66-77-55-99 172.16.1.1 ETH12 Router Router 172.18.0.0 172.16.0.0 77-88-11-44-BB-CC 172.17.1.1 ETH44 Ethernet Ethernet 172.17.0.0 00-2A-DE-12-34-CD 00-2A-DE-12-34-CD ping 172.17.10.34 Desktop System COLIBRI 172.16.3.2 Desktop System Desktop System Desktop System CANARIO 172.17.10.34 RESPOSTA OS ROTEADORES CONSULTAM A TABELA DE ROTAS LOCAL PARA DETERMINAR SE “NETID” DE DESTINO É CONHECIDO. SE “NETID” CONSTA NA TABELA DE ROTAS, O DATAGRAMA É ENCAMINHADO PARA O SEU DESTINO, CASO CONTRÁRIO, O DG EMITE UMA MENSAGEM DE ERRO PARA A ESTAÇÃO, INDICANDO O DESTINO É INATINGÍVEL POR SER UM “NETID” DESCONHECIDO. OS ROTEADORES TROCAM INFORMAÇÕES PARA MANTEREM ATUALIZADA A TABELA LOCAL. ESTADO INICIAL DOS ROTEADORES. CONHECEM SOMENTE AS REDES QUE ESTÃO DIRETAMENTE CONECTADAS. NÃO CONHECEM OUTRAS REDES NÃO POSSUEM CAPACIDADE DE ROTEAMENTO PARA OUTRAS REDES. TABELA DE ROTAS APÓS ATUALIZAÇÃO COMUNICAÇÃO ENTRE COLIBRIxCANÁRIO 01. COLIBRI SEPARA “NETID” DE DESTINO E VERIFICA QUE É NECESSÁRIO ENCAMINHAR O DATAGRAMA PARA O DG DA REDE LOCAL (ROUTER CISCO). 02. MONTAGEM DO DATAGRAMA 03. CONSULTA TABELA ARP 04. ARP REQUEST SE NECESSÁRIO 05. ARP RESPONSE SE NECESSÁRIO 06. EMITE FRAME 07. DG RECEBE FRAME 08. PROCESSA DATAGRAMA 09. SEPARA “NETID” DE DESTINO 10. CONSULTA TABELA DE ROTEAMENTO 11. DESCOBRE O ENDEREÇO DO PRÓXIMO ROTEADOR QUE CONHECE A REDE DE DESTINO (ROUTER 3COM) 12. CONSULTA TABELA ARP 13. ARP REQUEST 14. ARP RESPONSE 15. ENCAPSULA O DATAGRAMA NO FRAME 16. TRANSMITE O FRAME 17. ROUTER 3COM RECEBE O FRAME 18. PROCESSA O DATAGRAMA 19. SEPARA “NETID” DE DESTINO 20. DESCOBRE QUE O “NETID” ESTÁ CONECTADO DIRETAMENTE. 21. CONSULTA TABELA ARP 22. ARP REQUEST SE NECESSÁRIO 23. ARP RESPONSE SE NECESSÁRIO 24. MONTA FRAME 25. ENVIA FRAME 26. CANÁRIO RECEBE FRAME .... FRAME GERADOS NA COMUNICAÇÃO NETMASK O ENDEREÇO IP É CONSTITUIDO DE DUAS PARTES: TODO O PROCESSO DE ROTEAMENTO É EXECUTADO A PARTIR DE UM NETID. PERGUNTA: COMO IDENTIFICAR O NETID A PARTIR DE UM ENDEREÇO IP DADO ? RESPOSTA: EXISTE UMA CONFIGURAÇÃO D0 TCP/IP CHAMADO NETMASK(MÁSCARA DE REDE), EM CADA INTERFACE DE REDE, QUE INFORMA UMA MÁSCARA A SER APLICADO SOBRE UM ENDEREÇO, TENDO COMO RESULTADO O NETID. FUNCIONAMENTO: O NETMASK GERALMENTE É EXPLICITO DA SEGUINTE FORMA: 255.0.0.0, 255.255.0.0, 255.255.255.0 EM BINÁRIO, O NÚMERO 255 É REPRESENTADO POR UM CONJUNTO DE 8 BITS: 11111111 E O VALOR 0 (ZERO) É REPRESENTADO POR UM CONJUNTO DE 8 BITS: 00000000 UMA MÁSCARA COM O FORMATO 255.255.0.0 FICARIA REPRESENTADO DA SEGUINTE FORMA 11111111. 11111111.00000000. 00000000 OPERAÇÃO E LÓGICO (&). A OPERAÇÃO E LÓGICO (&) É UMA OPERAÇÃO LÓGICA EXECUTADO ENTRE DOIS NÚMERO BINÁRIOS E RETORNA VERDADEIRO SOMENTE SE OS DOIS MEMBROS VERIFICADOS SÃO VERDADEIROS. EXEMPLO: 1 & 1 = 1, 1 & 0 = 0, 0 & 1 = 0, 0 & 0 = 0 SEPARANDO HOSTID E NETID UTILIZANDO A OPERAÇÃO E LÓGICO (&) SUBNET SUBNET - É O PROCESSO QUE OCORRE QUANDO UTILIZAMOS UMA PARTE DA ÁREA DE HOST PARA EXPANDIR O NÚMERO DE REDES. 172.16.10.0 255.255.255.0 Ethernet Router Ethernet 172.16.20.0 255.255.255.0 MÁSCARA NATURAL. ICMP PROTOCOLO ICMP (INTERNET CONTROL MESSAGE PROTOCOL) MECANISMO UTILIZADO ENTRE HOSTS E GATEWAYS PARA COMUNICAÇÃO DE CONTROLE E FALHAS NA REDE. EXEMPLOS. REDE CONGESTIONADA HOST DESCONECTADO DA REDE TTL EXPIRA FRAGMENTAÇÃO NEGADA OBSERVAÇÕES. O PROTOCOLO ICMP NÃO PROVE RECURAÇÃO DE ERROS, MAS APENAS INFORMA AO HOST ORIGINADOR. A AUSENCIA DE UMA MENSAGEM ICMP NÃO IMPLICA NA ENTREGA CORRETA DO DATAGRAMA. O ICMP É UTILIZADO PRINCIPALMENTE PARA DEPURAÇÃO DA OPERAÇÃO DA REDE. ENCAPSULAMENTO ICMP DESCRIÇÃO DOS CAMPOS ICMP FORMATO DE UM PACOTE ICMP A ÁREA DE DADOS DEPENDE DO TIPO DE MENSAGEM, MAS EM GERAL, CONTÉM O CABEÇALHO IP DA MENSAGEM PERDIDA E SEUS PRIMEIROS 64 BITS DE DADOS TIPO DE MENSAGENS ICMP TIPO DESCRIÇÃO T 0 Echo Reply (Ping) 3 Destination Unreachable 5 Redirect (change a route) 8 Echo Request 11 Time Exceeded for Datagram EXEMPLOS DE MENSAGENS ICMP PING - ECHO REQUEST - ECHO REPLY EXEMPLOS DE MENSAGENS ICMP DESTINO INATINGÍVEL Códigos para mensagem de endereço inatingível Code 0 1 2 3 4 5 6 7 8 9 10 11 12 Description Descrição Network Unreachable Host Unreachable Protocol Unreachable Port Unreachable Fragmentation Needed and DF set Source Route failed Destination Network unknown Destination Host unknown Source host isolated Comunication with destination network administratively prohibited Comunication wiht destination host administratively prohibited Network unreachable for type of service Host unreachable for type of service INDICAÇÃO DE TEMPO DE VIDA ESGOTADO (TTL) Descrição de Código Code Descrição 0 1 Time-to-live count exceeded Fragment reassembly time exceed TCP/UDP COMO FUNCIONA UM SISTEMA DE CX POSTAL. UM CIDADÃO JOSÉ DA SILVA ALUGA UMA CX POSTAL DO CORREIO QUE POSSUI A INDENTIFICAÇÃO 23; O CORREIO SABE QUE A CX POSTAL 23 PERTENCE AO JOSÉ DA SILVA O JOSÉ DA SILVA DIVULGA PARA TODO MUNDO QUE CARTAS ENDEREÇADAS A ELE DEVEM SER ENDEREÇADO PARA A CX POSTAL 23 IDENTIFICANDO O DESTINO FINAL. EM UM AMBIENTE MULTIPROGRAMADO, UM PROGRAMA EM EXECUÇÃO É UM PROCESSO E DESTA FORMA POSSUI UMA IDENTIFICAÇÃO PERANTE O SISTEMA OPERACIONAL. UMA MENSAGEM TEM COMO DESTINO FINAL, UM PROCESSO QUE É EXECUTADO EM ALGUMA MÁQUINA DA REDE. PROBLEMAS QUE OCORREM COM OS PROCESSOS PODEM SER: - UM PROCESSO PODE TRAVAR - NECESSITAMOS RECARREGAR O PROCESSO PARA VALIDAR MODIFICAÇÕES - SISTEMA OPERACIONAL TRAVA. A SOLUÇÃO PARA OS PROBLEMAS. A SOLUÇÃO PARA OS PROBLEMAS ANTERIORES É UTILIZAR UM SISTEMA DE CAIXA POSTAL, ONDE TODAS AS MENSAGENS QUE CHEGAM SÃO DEPOSITADAS E A SEGUIR ENVIADAS PARA O PROCESSO DE DESTINO. A CAIXA POSTAL CORRESPONDE AO ENDEREÇO FIXO DO PROCESSO, INDEPENDENTE QUAL SEJA A IDENTIFICAÇÃO DO PROCESSO DENTRO DO SISTEMA OPERACIONAL. EXEMPLO DE UM SISTEMA DE CX POSTAL SITUAÇÃO 1 EXEMPLO DE UM SISTEMA DE CX POSTAL SITUAÇÃO 2 O PROTOCOLO TCP/UDP UTILIZAÇÃO O CONCEITO DE CX POSTAL (PORT) PARA RECEBER OS PACOTES E ENTREGA-LOS AO PROGRAMA. CADA PORT ESTÁ ASSOCIADO UM ÚNICO PROCESSO. CADA PORT É IDENTIFICADO POR UM INTEIRO POSITIVO O ACESSO A PORTA É FEITO DE FORMA SÍNCRONA E BLOCANTE. AS PORTAS SÃO BUFFERIZADAS EM UMA FILA FINITA PARA POSTERIOR PROCESSAMENTO PARA COMUNICAR COM UMA PORTA REMOTA , O EMISSOR NECESSITA SABER O ENDEREÇO IP E O PORT NUMBER DE DESTINO. COMUNICAÇÃO ENTRE DOIS PROCESSOS ATRAVÉS DE PORT USER DATAGRAMA PROTOCOL UDP CARACTERÍSTICAS GERAIS - UDP FORNECE O MECANISMO DE PORT PARA DISTINGUIR MULTIPLOS PROGRAMAS QUE EXECUTAM NA MESMA MÁQUINA. CADA MENSAGEM UDP CONTÉM O PORT NUMBER DE ORIGEM E DESTINO, TORNANDO POSSÍVEL QUE O SOFTWARE UDP ENTREGUE A MENSAGEM NO LOCAL CORRETO UDP UTILIZA A MESMA SEMANTICA DO IP, OU SEJA, NÃO-CONFIABILIDADE, ENTREGA DE DATAGRAMA SEM CONEXÃO CARACTERÍSTICAS GERAIS - UDP NÃO USA ACK PARA CONFIRMAR A CHEGADA DA MENSAGEM NÃO ORDENA MENSAGENS VINDO. NÃO PROVE “FEEDBACK” PARA CONTROLAR A VAZÃO DE INFORMAÇÃO ENTRE AS DUAS MÁQUINAS. AS MENSAGENS PODEM SER PERDIDAS DUPLICADAS OU CHEGAR FORA DE ORDEM. CARACTERÍSTICAS GERAIS - UDP UMA APLICAÇÃO QUE UTILIZA UDP ACEITA TOTAL RESPONSABILIDADE POR MANIPULAR PROBLEMAS DE CONFIABILIDADE, INCLUINDO MENSAGEM PERDIDA, ATRASO, ENTREGA FORA DE ORDEM E PERDA DE CONECTIVIDADE EXEMPLO DE PROGRAMA QUE FAZ CONTROLE DE SEQUÊNCIA Estrutura de dados struct mensagem { int sequência; char msg [4096]; } observação: sequência == -1 indica erro de sequência ---- FUNÇÃO QUE RECEBE UM PACOTE receber ( struct mensagem *buffer ) { rcv (buffer) if ( buffer.sequência != sequência_esperado ) then buffer.sequencia = -1; } envia ( buffer ); /* envia mensagem de conf. */ FORMATO DO PACOTE UDP DESCRIÇÃO DE CAMPOS DA MENSAGEM UDP CAMPO DESCRIÇÃO SOURCE PORT DESTINATION PORT MESSAGE LENGTH PORTA ORIGEM PORTA DE DESTINO COMPRIMENTO DO DATAGRAMA INCLUINDO CABEÇALHO E DADOS É OPCIONAL CHECKSUM PORTAS RESERVADAS NO PROTOCOLO UDP TRANSMISSION CONTROL PROTOCOL (TCP) COMO PROVER CONFIABILIDADE NA ENTREGA DE UMA DATAGRAMA ???? RESPOSTA.... O RECEPTOR DA MENSAGEM DEVE DEVOLVER UMA RESPOSTA DE CONFIRMAÇÃO DE CHEGADA DE MENSAGEM. O EMISSOR DEVE AGUARDAR UMA RESPOSTA DO RECEPTOR. MECANISMO DE CONFIABILIDADE PERDA DE PACOTE DUPLICAÇÃO DE PACOTE MELHORANDO A UTILIZAÇÃO DO MEIO. NECESSIDADE DE ENTREGA CONFIÁVEL. PARA A TRANSFERÊNCIA DE GRANDES QUANTIDADES DE DADOS, UTILIZANDO O SISTEMA DE ENTREGA SEM CONEXÃO E SEM CONFIABILIDADE, É NECESSÁRIO PROGRAMAR A DETECÇÃO E RECUPERAÇÃO DE ERROS EM CADA APLICAÇÃO. POUCOS DESENVOLVEDORES DE APLICAÇÃO POSSUI O CONHECIMENTO TÉCNICO PARA ISSO. PESQUISADORES DESENVOLVERAM UM PROTOCOLO DE USO GERAL QUE GARANTE UMA ENTREGA CONFIÁVEL, ISOLANDO A APLICAÇÃO DE DETALHES DE REDE.