Gerência de Comunicações de Dados - Parte II Prof. Milton Kaoru Kashiwakura PUC-SP 1 Tamanho da Rede • Classificação: – LAN (“Local Area Network”) • Pode atender um prédio ou campus – MAN (“Metropolitan Area Network”) • Pode atender uma cidade – WAN (“Wide Area Network”) • Pode atender “sites” em várias cidades, países ou continentes • Principal diferença entre LAN e WAN é a escalabilidade PUC-SP 2 Principal Elemento de WAN • Packet Switches – É um computador que tem processador, memória e dispositivos de I/O para enviar e receber pacotes – Store and Forward, armazena o pacote quando este chega (store), avisa CPU que pacote chegou e determina para qual interface este vai (forward) PUC-SP 3 Formando uma WAN • Escalabilidade: uma WAN deve poder crescer quanto necessário para conectar vários sites com vários computadores espalhado por enormes distancias geográficas PUC-SP 4 Endereço Físico e roteamento • Endereço Físico hierárquico PUC-SP 5 Roteamento na WAN • Roteamento Universal: A tabela de roteamento deve conter um “next-hop route” para cada destino possível • Roteamento Ótimo: Em um switch, o valor do “next-hop” na tabela de roteamento para um dado destino deve apontar para o caminho mais curto até o destino. PUC-SP 6 Network PUC-SP 7 Uso de “Default Routes” • “Default Route” é opcional, o uso de “default route” (*) é possível se mais que um destino tem o mesmo valor de “next-hop” PUC-SP 8 Computação da Tabela de Roteamento • Roteamento Estático: um programa computa e instala rotas quando um packet switch é ligado; as rotas não mudam. • Simplicidade e pequeno overhead • Inflexível • Roteamento Dinamico: um programa constroi uma tabela de roteamento inicial quando o packet switch é ligado; o programa então altera a tabela se as condições da rede mudam. • Trata problemas de rede automaticamente PUC-SP 9 Computação “Shortest Path” • Algoritmo de Dijkstra computa o caminho mais curto no gráfico usando pesos nos links como medida de distancia. PUC-SP 10 Algoritmo de Dijkstra • Dado um grafo com pesos não negativos associado a cada link e designado um nó de origem, o algoritmo computa a menor distancia a partir deste nó de origem para qualquer outro nó e a tabela de roteamento para o nó de origem. • S= conjunto dos nós • D= peso dos links • R= Next-hop PUC-SP 11 Algoritmo de Dijsktra sequência S D R 1 1,2,3,5,6,7 ->7 ,,11,0, , ,3 0,0,3,-,0,0,7 2 1,2,3,5,6 ->6 ,,11,0, , 8,3 0,0,3,-,0,7,7 3 1,2,3,5 ->3 ,16,10,0, , 8,3 0,7,7,-,0,7,7 4 1,2,5 ->2 ,13,10,0, , 8,3 0,7,7,-,0,7,7 5 1,5 ->5 ,13,10,0, 19, 8,3 0,7,7,-,7,7,7 6 1 28,13,10,0, 19, 8,3 7,7,7,-,7,7,7 PUC-SP 12 Proprietário da Rede • Privado: tecnologia LAN é frequentemente usado para redes privadas; grandes corporações podem ter uma WAN privada para conectar computadores em multiplos sites. • Público: é análogo ao sistema telefonico, qualquer um pode fazer uma assinatura para o serviço e conectar um computador. PUC-SP 13 VPN – Virtual Private Network • Uma VPN combina as vantagens das redes privadas e públicas permitindo que uma empresa com várias filiais tenha a ilusão de estar usando uma rede completamente privada, mas utilizando uma rede pública para transportar dados entre sites. • O sistema VPN examina o destino, criptografa o pacote, e envia o resultado através de uma rede pública para o sistema VPN do site destino. PUC-SP 14 Paradigma do Serviço • Serviço Orientado a Conexão: – – – – Opera análogo a um sistema telefonico Stream interface A comunicação não precisa ser contínuo Facil de contabilizar e informa computador imediatamente se a conexão cai. • Serviço Não Orientado a Conexão: – Opera similar a um sistema de correio – Uma falha no sistema pode passar despercebido – Menor “overhead” inicial PUC-SP 15 Duração da Conexão e Persistencia • Serviço Orientado a Conexão pode ser : – Conexão Permanente, por requerer esforço manual para ser estabelecido normalmente persiste por dias, meses ou anos. – Conexão Chaveada, usado para conexões temporárias, de curta duração PUC-SP 16 Exemplos de Paradigma de Serviço PUC-SP 17 Desempenho da Rede • Delay (atraso) – – – – Atraso de propagação (“propagation delay”) Atraso do Chaveador (“Switching delay”) Atraso do acesso ( “Access delay”) Atraso de fila (“queueing delay”) • Throughput (desempenho) – Taxa de transmissão em bps (bits por segundo) – Bandwidth e speed são utilizados como sinonimos – Mede capacidade e não velocidade PUC-SP 18 Relação entre Delay e Throughput • D = Do / (1-U) – Se a rede está “idle”, U é zero – D é delay efetivo – Do é delay quando a rede está “idle” • T x D , mede o volume de dados que podem estar presente na rede. Uma rede com throughput T e delay D tem um total de TxD bits em transito. PUC-SP 19 Protocolos e Camada • Protocolo de comunicação é um conjunto de regras que especifica o formato da mensagem e a ação apropriada requerida para cada mensagem trocada entre computadores. • Em vez de ter um único e enorme protocolo que especifica detalhadamente todas as formas de comunicação, projetista optaram por dividir o problema de comunicação em sub-pedaços e projetar um protocolo separado para cada subpedaço. PUC-SP 20 Modelo de 7 camadas • ISO (“International Organization for Standardization”) • Modelo de 7 camadas ou OSI (“Open Systems Interconnection”) PUC-SP 21 Camada 1 - Físico • Corresponde ao hardware básico da rede • Estabelece a interface elétrica e mecânica do meio físico da rede (ex.: cabo) • Transporta os bits de um ponto a outro PUC-SP 22 Camada 2 - Enlace • É responsável pelo acesso ao meio físico • Lida com as funções de transferencia física, enquadramento, controle de fluxo, controle de erros sobre um único enlace de transmissão • Muitas vezes é dividida em duas: Controle do Enlace Lógico (LLC-”Logical Link Control”) e Controle de Acesso ao Meio (MAC – “Medium Access Control”) PUC-SP 23 Camada 3 - Rede • Estabelece, mantém e termina ligações lógicas e/ou físicas • A camada de rede é responsável por converter endereços lógicos, em endereços físicos • Implementa as funções de roteamento da rede e controle de fluxo entre o computador e a interface de rede. PUC-SP 24 Camada 4 - Transporte • Está relacionado com a confiabilidade da troca de mensagem. Tem a responsabilidade de, se os dados forem enviados incorretamente, pedir a retransmissão dos mesmos. • Considerado complexo PUC-SP 25 Camada 5 - Sessão • Providencia um método para estabelecimento da conexão entre dois dispositivos para que os dispositivos possam enviar e receber dados. • Gerencia o início e término da conexão • Especifica detalhes de segurança como autenticação usando senha • Sincroniza fluxo de dados entre as aplicações PUC-SP 26 Camada 6 - Apresentação • Auxilia na representação dos dados, chamada sintaxe. Ela examina a sintaxe usada pela aplicação origem e a utilizada pela aplicação destino, e se necessário, cria uma sintaxe de transferência para ser utilizada entre as duas PUC-SP 27 Camada 7 - Aplicação • Providencia os serviços para os aplicativos do usuário final, tais como correio eletrônico, transferência de arquivos, “login” remoto (emulação de terminal), gerenciamento de rede, etc. • Especifica os detalhes de como uma aplicação faz requisição e como uma aplicação em outro computador responde. PUC-SP 28 Pilhas: camadas do software • Cada módulo comunica somente com o módulo imediatamente superior e inferior. • Computador pode executar mais de uma pilha de protocolo por vez, se necessário. PUC-SP 29 Múltiplos cabeçalhos encadeados • Alguns softwares de protocolo faz mais que prepende de cabeçalho, insere caracter especial para marcar início e fim do quadro e insere caracteres adicionais no meio para evitar ocorrencia de caracteres especiais. PUC-SP 30 Base Científica para uso de camadas – Princípio das camadas • Princípio de camada: • Software da camada N no computador destino deve receber a mensagem exatamente como enviada pelo software de camada N do computador de origem. PUC-SP 31 Técnicas utilizadas pelos protocolos • Sequenciamento – utilizada para resolver problema de entrega fora de ordem. • Sequenciamento – utilizado para eliminar pacotes duplicados • Retransmissão – para resolver problema de perda de pacote • Identificação única de cada sessão – para evitar repetição causado por atraso excessivo. PUC-SP 32 Entrega fora de ordem Envia Chega ao destino Solução: Sequenciamento PUC-SP 33 Pacotes duplicados Envia Chega ao destino Solução: Sequenciamento PUC-SP 34 Perda de pacotes Envia Chega ao destino Solução: Retransmissão PUC-SP 35 Pacote duplicado em sessões diferentes Origem: 1 2 1 4 3 4 2 3 2 3 5 4 6 7 8 5 6 7 8 4 5 6 7 Destino: 1 1 2 3 4 4 5 6 8 7 8 Solução: Identificador único da sessão PUC-SP 36 Controle de Fluxo para evitar “overrun” • Tw = min( B, Tg x W ) PUC-SP 37 Mecanismo para evitar congestionamento na rede • Packet Switches informa o transmissor que houve congestionamento • Utiliza perda de pacote como estimativa de congestionamento PUC-SP 38 Internetworking PUC-SP 39 Motivação - Tecnologica • Cada tecnologia de rede é projetado para atender um conjunto de premissas. – Tcnologias LAN são projetados para prover alta velocidade a curtas distâncias. – Tecnologias WAN são projetados para prover comunicação através de grandes áreas. • Conclusão: Não existe uma única tecnologia que seja a melhor para atender a todas as necessidades. PUC-SP 40 Motivação: Conceito de Serviço Universal • Problemas: – um computador conectado numa rede só pode se comunicar com computadores da mesma rede. – Usuário para realizar uma determinada tarefa tinha que se dirigir ao computador alocado para aquela tarefa. • Um Sistema de Comunicação que fornece Serviço Universal possibilita que quaisquer pares de computadores se comuniquem. • Serviço Universal é desejado porque aumenta a produtividade do indivíduo. PUC-SP 41 Motivação : Serviço Universal em redes heterogeneas • Apesar do Serviço Universal ser altamente desejado, incompatibilidade de formatos de pacotes e esquemas de endereços físico desmotivavam as organizações em montar uma rede que incluia diferentes tecnologias. • Internetworking é um esquema capaz de prover Serviço Universal em redes heterogêneas. O sistema resultante é conhecido como internetwork ou internet PUC-SP 42 Roteador • Roteador é um computador dedicado para a tarefa de interconectar redes. • Roteador pode interconectar redes que utilizam diferentes tecnologias, incluindo diferentes meios, esquemas de endereçamento físico, ou formato de ‘frame”. PUC-SP 43 Arquitetura internet • Topologia internet depende : – Capacidade (largura de banda das redes físicas e tráfego esperado) – Confiabilidade desejada – Custo (dos roteadores disponíveis e links) PUC-SP 44 Rede Virtual • A internet é um sistema de rede virtual, os detalhes das conexões físicas entre redes, endereços físicos, informações de roteamento são escondidos. • Software de Protocolo em cada computador e roteadores são vitais para ter serviço universal. PUC-SP 45 TCP/IP • TCP/IP (“Transmission Control Protocol/Internet Protocol) • O modelo de 7 camadas não correspodem exatamente ao modelo de camadas TCP/IP. PUC-SP 46 Endereço IP • Esquema de endereço abstrato que associa a cada host um endereço único. Utilizado pelos usuários, programas aplicativos e camadas superiores do protocolo de software. • IPv4 usa 32 bits, hierárquico (prefixo + sufixo) PUC-SP 47 Notação PUC-SP 48 Exemplo de Rede • Autoridade para designar endereço: – IANA (“Internet Assigned Number Authority”) designou para RIR ou LIR esta tarefa: – APNIC (Asia Pacific Network Information Centre) - Asia/Pacific Region – ARIN (American Registry for Internet Numbers) - North America and Sub-Sahara Africa – LACNIC (Regional Latin-American and Caribbean IP Address Registry) – Latin America and some Caribbean Islands – RIPE NCC (Réseaux IP Européens) Europe, the Middle East, Central Asia, and African countries located north of the equator PUC-SP 49 Endereços IP especiais PUC-SP 50 Roteador e Endereço IP • Um endereço IP não identifica um computador específico. Um endereço IP identifica a conexão entre um computador e a rede. PUC-SP 51 Mapeamento de Endereço • Antes que um software de protocolo possa enviar um pacote através da rede física o software deve traduzir o endereço de destino IP em endereço de hardware equivalente. • A tradução de endereço IP para endereço físico equivalente é conhecido como “Resolução de Endereço” PUC-SP 52 Tecnicas para resolução de endereço • Table Lookup • Closed-Form Computation • Message Exchange PUC-SP 53 Table Lookup • Cada entrada contém par (P,H), onde P é o endereço de protocolo (IP) e H é endereço de hardware (Físico). PUC-SP 54 Closed-Form Computation • Endereço IP 220.123.5.101 • Endereço de Hardware 101 • Operação booleana hardware_address = ip_address & 0xff PUC-SP 55 Comparação PUC-SP 56 ARP- Address Resolution Protocol • Envia mensgem broadcast para a rede • Só computador com endereço IP consultado responde PUC-SP 57 ARP – Formato da Mensagem PUC-SP 58 ARP - envio • Frame Ethernet PUC-SP 59 Datagrama IP • Formato de pacote independente de hardware PUC-SP 60 Encapsulamento do pacote IP PUC-SP 61 MTU PUC-SP 62 Rede Virtual PUC-SP 63 Motivação • Tecnologia LAN - alta velocidade, curta distância • Tecnologia WAN - comunicação em longas distâncias • Resultado: – Não existe uma tecnologia que seja a melhor para todas necessidades PUC-SP 64 Serviço Universal • Um computador conectado numa dada rede só pode se comunicar com computadores conectados na mesma rede • Várias redes para várias tarefas - o usuário era obrigado a se deslocar para o computador específico à tarefa (“insatisfação”) • Solução : Serviço Universal PUC-SP 65 Serviço Universal • Um sistema de comunicação que fornece serviço universal possibilita a comunicação de qualquer par arbitrário de computadores. • O serviço universal é desejado porque aumenta a produtividade individual • Redes heterogêneas : – esquema : INTERNETWORKING – sistema : INTERNET PUC-SP 66 Roteador • É um computador de propósito especifico dedicado à tarefa de interconectar redes, seja de mesma tecnologia ou não, incluindo meios diferentes, esquema de endereços físicos diferentes ou formatos de quadro diferentes PUC-SP 67 Rede Virtual • Combinação de SW e HW faz parecer que a Internet é um sistema de rede uniforme • Software de protocolo internet esconde os detalhes da rede física • Abstração PUC-SP 68 Protocolos para “Internetworking” • TCP/IP Internet Protocols • início nos anos de 1970 – ARPA (“Advanced Research Projects Agency”) • meados dos anos 1980 – NSF (“National Science Foundation”) – NSFNET (1987-1995) PUC-SP 69 TCP/IP e Modelo de Camadas • Camada 3 – Formato dos pacotes – mecanismo (“forwarding”) • Camada 4 – especifica como garantir uma transferencia segura PUC-SP 70 Host, Roteador e TCP/IP • Host - qualquer sistema de computador que conecta à internet e executa uma aplicação • Roteador - Não usa todas as camadas do modelo TCP/IP. Por exemplo, um roteador não necessita da camada 5 para uma aplicação de transferencia de arquivo porque ele não executa tal aplicação PUC-SP 71 Endereço para uma rede virtual • Esquema de endereço abstrato, cada “host” está associado a um único endereço IP. • Usuários, programa de aplicação, e camadas superiores do protocolo TCP/IP usam este esquema. • Hierarquia – prefixo (rede física) – sufixo (“host”) PUC-SP 72 Notação ponto decimal • Binário -> Decimal • • • • • • • • • PUC-SP 20 = 1 21 = 2 22 = 2*2 = 4 23 = 2*2*2 = 8 24 = 2*2*2*2 = 16 25 = 2*2*2*2*2 = 32 26 = 2*2*2*2*2*2 = 64 27 = 2*2*2*2*2*2*2 = 128 Ex.: 10000001= 27 +20=129 73 Autoridade para endereço IP • IANA (“Internet Assigned Number Authority”) – http://www.iana.org • ARIN (“American Registry for Internet Numbers”) – http://www.arin.net • FAPESP – http://registro.fapesp.br ou http://registro.br PUC-SP 74 Exemplo de endereçamento • Os roteadores precisam ter um endereço IP para cada interface de rede. • Ex.: Roteador 1 – 128.10.0.5 – 128.211.10.1 PUC-SP 75 Endereços IP Especiais • Endereço da Rede – host address zero • Endereço de Broadcast Direcionado – sufixo com todos os bits “1” • Endereço de Broadcast Limitado – todos os bits “1” – usado para conhecer o numero da rede PUC-SP 76 Endereços IP Especiais • Endereço “This Computer” – todos os bits “0” – “startup protocols” quando do “boot” • Endereço de “loopback” – prefixo 127 – teste da pilha TCP/IP – não há pacote na rede com endereço de “loopback” PUC-SP 77 Endereços IP Especiais • Endereço Berkeley Broadcast – BSD Unix – sufixo, todo zero para indicar broadcast direcionado PUC-SP 78 Ligando Endereço de Protocolo • Endereço de Protocolo é uma abstração providenciada pelo software • A rede física não sabe como localizar um computador a partir do endereço de protocolo • Antes de transmitir um pacote o endereço de protocolo do “next hop” deve ser transladado para um endereço de hw equivalente PUC-SP 79 Resolução de Endereço • Mapeamento entre um endereço de protocolo e um endereço de hardware é chamado resolução de endereço • Um “host” ou roteador usa resolução de endereço sempre que necessitar enviar um pacote para um outro computador na mesma rede física • Um computador nunca resolve endereço de um computador conectado numa rede remota PUC-SP 80 Técnica de Resolução de Endereço • “Table lookup” • “Closed Form computation” • “Message exchange” PUC-SP 81 “Table Lookup” • Array (P,H) – P é endereço de protocolo – H é endereço de hardware • Técnica de busca – sequencial – hashing – indexação direta PUC-SP 82 “Closed Form Computation” • Quando um computador é conectado numa rede que usa endereço configurável, o administrador de rede deve escolher o endereço de hardware e o endereço IP. Os dois valores devem ser escolhidos de forma que a resolução de endereço seja trivial. • Ex.: end. IP 220.123.5.1 e end. MAC 00:00:00:00:00:01 • end. IP 220.123.5.2 e end. MAC 83 PUC-SP “Message Exchange” • Servidores – tem a tarefa de resolver as requisições de endereço • Broadcast – cada computador concorda em responder à resolução de endereço do seu endereço PUC-SP 84 Resolução de Endereço Resumo Característica Pode ser utilizado com qualquer hardware Tipo de resolução T Troca de endereço afeta todos os “hosts” T Endereço de protocolo independente do endereço de hardware T, D Endereço de hardware deve ser menor que endereço de protocolo C Endereço de protocolo determinado pelo endereço de hardware C Utiliza broadcast de hardware D Adiciona tráfego na rede D A resolução de endereço se dá com mínimo atraso T, C Implementação é mais difícil D T=table lookup; C=closed-form computation; D=dynamic message exchange PUC-SP 85 ARP - “Address Resolution Protocol” • incluso no protocolo TCP/IP • 2 tipos básicos de mensagens – request • envia endereço IP e pede o correspondente endereço de hardware – response • resposta ao pedido de request, contém todas as informações do request + endereço de hardware PUC-SP 86 Exemplo - ARP • Request • Response PUC-SP 87 Formato da Mensagem ARP • Ethernet e IP – Hardware Address Type = 1 Operation: 1= request ; 2=response PUC-SP – Protocol Address Type = 0x0800 88 Transmissão de uma mensagem ARP PUC-SP 89 Resolução de Endereço e Modelo de Camadas • Modelo de 5 camadas • Endereço de hardware nas camadas 1 e 2 • Endereço de protocolo nas demais PUC-SP 90 Datagrama IP • • • • pacote virtual independente da rede física pacote do protocolo TCP/IP por conectar redes heterogêneas, um roteador não pode transmitir uma cópia do quadro que chega de uma rede para outra distinta PUC-SP 91 Datagrama IP • Mesma forma geral do quadro de hardware • tamanho dos dados é variável e determinado pela aplicação – máximo de 64 K octetos PUC-SP 92 “Forwarding” • Cada destino na tabela de rotas corresponde a uma rede • O número de entradas na tabela de rotas é proporcional ao número de redes em uma internet PUC-SP 93 Endereço IP e Entradas na Tabela de Rotas • If ((Mask[i] &D) == Destination[i]) forward to NextHop[i]; – onde D é endereço de destino do datagrama IP PUC-SP 94 Entrega “Best-Effort” • IP não garante que resolve problemas de: – – – – duplicação de datagrama entrega fora de ordem ou atrasado dados corrompidos perda de datagrama PUC-SP 95 Formato do Header do Datagrama IP • Type = tipo de dados • H.LEN em múltiplo de 32 bits • Time to live, ao passar por roteador este valor é decrementado; se chegar a zero o datagrama é descartado PUC-SP 96 Encapsulamento do Datagrama IP • Um datagrama é encapsulado em um quadro para transmissão pela rede física. • O endereço de destino do quadro é o endereço do next hop PUC-SP 97 Transmissão pela Internet • Header depende da tecnologia de rede PUC-SP 98 MTU, tamanho do datagrama e encapsulamento • MTU depende da tecnologia de rede PUC-SP 99 Remontagem do datagrama fragmentado • A remontagem só ocorre no destino final • IP não garante a entrega, assim os fragmentos podem ser perdidos ou chegar fora de ordem • Identification , fragment offset • O destino não sabe quantas fragmentações ocorreram PUC-SP 100 Rede Virtual - Continuação PUC-SP 101 ICMP - “Internet Control Message Protocol” • Na comunicação “best effort” – – – – o datagrama pode ser perdido o datagrama pode ser duplicado o datagrama pode ter atraso o datagrama pode ser entregue fora de ordem • Apesar do serviço “best effort” não necessitar de qualquer mecanismo de detecção de erro ele não é realizado sem cuidado. PUC-SP 102 ICMP • ICMP faz parte da pilha TCP/IP • É um mecanismo para reportar erro • Se houver erro no HEADER CHECKSUM do cabeçalho do datagrama IP, o roteador/host: – Não consegue avisar o “host” origem da mensagem que houve erro – Tem que descartar o datagrama PUC-SP 103 Lista de mensagem ICMP • Type de 8 bits PUC-SP 104 ICMP - Source Quench • O roteador envia source quench sempre que ele receber mais datagrama do que ele pode tratar. • O roteador descarta o datagrama • O “host” origem do datagrama descartado ao receber a mensagem de source quench reduz a taxa de transmissão PUC-SP 105 ICMP - Time Exceeded • TIME TO LIVE do header é reduzido a ZERO – roteador envia mensagem ICMP de “Time Exceed” para o “host” origem – o datagrama no roteador é descartado • Fragmentação – o “host”envia mensagem Time Exceed se esgotar o tempo para remontagem e todos os fragmentos não chegarem. PUC-SP 106 ICMP - Destination Unreachable • Sempre que o roteador concluir que não dá para entregar o datagrama recebido ele envia uma mensagem Destination Unreachable para o “host” origem • A mensagem Destination Unreachable especifica se o problema é na rede ou no “host” PUC-SP 107 ICMP - Redirect • Se o roteador concluir que o datagrama não deveria ser enviado para ele e sim para um outro roteador ele envia a mensagem Redirect para o “host” origem para que ele troque de rota. PUC-SP 108 ICMP - Parameter Problem • Um ou mais parâmetros especificado no datagrama está incorreto. PUC-SP 109 ICMP - Echo Reply / Request • Uma mensagem echo request pode ser enviada para o software ICMP de qualquer computador • O computador que receber esta mensagem envia uma mensagem de echo reply • A mensagem de echo reply transporta a mesma mensagem recebida no echo request. PUC-SP 110 ICMP - Address Mask Request / Reply • O “host” envia um broadcast de mensagem ICMP Address Mask Request quando do “boot” • O roteador que recebe o request envia a mensagem ICMP Address Mask Reply que contém a máscara sub-net de 32 bits utilizado pela rede. PUC-SP 111 Transporte da mensagem ICMP • ICMP usa IP para transportar a mensagem de erro ou de informação. PUC-SP 112 Usando ICMP - “Ping” • “Ping” usa ICMP echo request / reply • Ao enviar a mensagem echo request para um destino especifico este inicia uma espera • Ao término da espera se não chegar echo reply ele retransmite echo request • Após algumas tentativas sem echo reply ele declara que a máquina remota não é localizável. PUC-SP 113 Usando ICMP - “Traceroute” • • • • • Utiliza TTL e ICMP Time Exceeded TTL = 1, descobre o primeiro roteador ... TTL = n, descobre o n-ésimo roteador UDP para um programa inexistente no “host” destino • Destino envia mensagem ICMP Destination Unreachable. PUC-SP 114 Usando ICMP - “Path MTU” • Fragmentação afeta o desempenho • Aplicações podem evitar fragmentação se usar “Path MTU”, o menor MTU do caminho entre a origem e o destino • Probe - conf. campo FLAGS para que não possa fragmentar a mensagem • O roteador envia mensagem ICMP de erro. PUC-SP 115 Protocolo de Transporte PUC-SP 116 Protocolo de Transporte • Camada da pilha de Protocolo TCP/IP • Conceitualmente entre as camadas de – Aplicação – IP PUC-SP 117 Terminologia • IP – Providencia comunicação computador-a-computador – Endereços de origem e destino são computadores – Chamado de comunicação “máquina-a-máquina” • Protocolo de Transporte – Providencia comunicação aplicação-a-aplicação – Necessita estender mecanismo de endereçamento para identificar a aplicação – Chamado de comunicação “fim-a-fim” PUC-SP 118 Funcionalidade do Protocolo de Transporte • Identifica a aplicação transmissora e receptora • Opcionalmente proporciona – Confiabilidade – Controle de Fluxo – Controle de Congestionamento • Nota: nem todo protocolo de transporte proporciona as facilidades acima PUC-SP 119 Dois Protocolos de Transporte Disponíveis • “Transmission Control Protocol” (TCP) • “User Datagram Protocol” (UDP) • Maiores diferenças – Interface para aplicação – Funcionalidade PUC-SP 120 “User Datagram Protocol” (UDP) • Providencia transferência sem garantia • Requer mínimo – “Overhead” – Processamento computacional – Comunicação • Melhor para aplicações LAN PUC-SP 121 Detalhes UDP • Paradigma do serviço não orientado a conexão – interface orientado a mensagem • Cada mensagem é encapsulada num datagrama IP • O header UDP identifica : – Aplicação transmissora – Aplicação receptora PUC-SP 122 Identificando uma aplicação • O endereço IP não pode ser estendido – não tem bits sem uso • Não pode usar valor dependente do SO – Process ID – Task number – Job name • Deve trabalhar em todos os sistemas de computadores PUC-SP 123 Identificando uma aplicação (continuação) • Nova abstração – usado somente com TCP/IP – identifica transmissor e receptor sem ambiguidade • Técnica – cada aplicação recebe um número inteiro único – chamado “protocol port number” PUC-SP 124 Portas de Protocolo • Servidor – segue o padrão – sempre usa o mesmo número de porta – usa número de portas baixa • Cliente – obtém uma porta do software de protocolo não utilizado – usa número de portas alta PUC-SP 125 Exemplo de Portas de Protocolo • aplicação Domain Name Server recebe o número de porta 53 • aplicação que usa DNS obtém o número de porta 28900 • datagrama UDP enviado a partir da aplicação para o servidor DNS tem: – número de porta origem 28900 – número de porta destino 53 PUC-SP 126 Exemplo de Porta de Protocolo (continuação) • Quando o servidor DNS responde, o datagrama UDP enviado tem: – número de porta origem 53 – número de porta destino 28900 PUC-SP 127 TCP - “Transmission Control Protocol” • Protocolo de transporte mais utilizado na Internet • Usado massivamente • Serviço de entrega confiável • Serviço orientado à conexão • ponto a ponto • comunicação “full-duplex” PUC-SP 128 TCP - Características • “Stream Interface” - sequência contínua de octetos • “stream” dividido em segmentos para transmissão • cada segmento é encapsulado em datagrama IP • utiliza porta de protocolo para identificar a aplicação PUC-SP 129 TCP - Características • TCP providencia um serviço de transporte de fluxo contínuo, “full duplex”, orientado à conexão e completamente confiável ( não há perda de dados ou duplicações). Permite que dois programas aplicativos forme uma conexão, envie dados em ambas as direções e então termine a conexão. PUC-SP 130 Relação entre TCP e outros protocolos • TCP em um computador usa IP para comunicar com TCP em outro computador PUC-SP 131 Contradição aparente • IP oferece entrega “best effort” • TCP usa IP • TCP garante uma transferência completamente confiável • Como isto é possível ? PUC-SP 132 Obtendo confiabilidade • Conexão “startup” confiável • Transmissão de dados confiável • Conexão “shutdown” “polido” PUC-SP 133 Transmissão de dados confiável • “Positive acknowledgment” – Computador destino retorna uma mensagem curta quando o dado chega – Chamado “acknowledgment” • Retransmissão – Origem inicia um “timer” sempre que uma mensagem é transmitida – Se o “timer” expirar antes que “acknowledgment” chegue, a origem retransmite a mensagem PUC-SP 134 Ilustração de uma retransmissão PUC-SP 135 Quanto tempo o TCP deverá esperar antes de retransmitir ? • Tempo para a chegada do “acknowledgment” depende: – da distância até o destino – das condições do tráfego corrente • Multiplas conexões podem ser abertas simultaneamente • As condições de tráfego podem variar rapidamente PUC-SP 136 Ponto Importante O “delay” necessário para que um dado chegue no seu destino e um “acknowledgment” retorne depende do tráfego na Internet assim como da distância até o destino. O TCP por permitir que múltiplos programas de aplicação comuniquem com vários destinos concorrentemente, deve tratar uma variedade de “delays” que podem mudar rapidamente em função do tráfego. PUC-SP 137 Resolvendo o problema da retransmissão • Tome o “round trip time” (rtt) estimado de cada conexão • Utilize o tempo estimado para retransmissão do conjunto corrente • Este método é chamado retransmissão adaptativa • É a chave do sucesso para o TCP PUC-SP 138 Ilustração da retransmissão adaptativa • “Timeout” depende do “round trip time” corrente estimado PUC-SP 139 Controle de Fluxo TCP • Destino – Anuncia o tamanho do “buffer” disponível – O “buffer” chama-se “window” • Origem – Pode enviar vários datagramas até o limite do “window” antes que um “ack” retorne PUC-SP 140 Anuncio do “window” • Cada “acknowledgment” transporta a informação do novo “window” – Chama-se “window advertisement” – O valor pode ser zero ( chama-se “closed window” ) • Interpretação: “Eu recebi até X de mensagem e posso receber ainda mais Y octetos PUC-SP 141 Ilustração de “window advertisement” PUC-SP 142 “Startup” e “Shutdown” • Conexão “Startup” – Deve ser confiável • Conexão “Shutdown” – Deve ser “polido” • Difícil PUC-SP 143 Porque é difícil “Startup/Shutdown” • Segmentos podem ser: – – – – – – Perdidos Duplicados Atrasados (“delayed”) Entregue fora de ordem Ambos os lados podem deixar de funcionar Ambos os lados podem dar “reboot” • É necessário evitar mensagem de “shutdown” duplicado PUC-SP 144 Solução para “Startup/Shutdown” do TCP • Utiliza três trocas de mensagens • Conhecido como “3-way handshake” • É necessário e suficiente para: – “Startup” confiável” e sem ambiguidade – “Shutdown” polido e sem ambiguidade • SYN é usado para “startup” • FIN é usado para “shutdown” PUC-SP 145 Ilustração de “3-way handshake” PUC-SP 146 Formato do segmento TCP • Todos os segmentos TCP tem o mesmo formato – – – – Dados Acknowledgment SYN (“startup”) FIN (“shutdown”) • Segmento é dividido em duas partes: – “Header” – “Payload” (zero ou mais bytes de dados) PUC-SP 147 Formato do segmento TCP (continuação) • O “Header” contém: – Números de porta de protocolo para identificar • Aplicação transmissora • Aplicação receptora – Bits para especificar itens como : • SYN • FIN • ACK – Campo para “window advertisement”, acknowledgment, etc. PUC-SP 148 Ilustração do Segmento TCP • “Sequence number” especifica qual é a posição do segmento no fluxo dos dados transmitidos • Poucos segmentos contém “options” PUC-SP 149 Resumo • Protocolo de transporte está entre a aplicação e o Protocolo Internet • Dois protocolos de transporte na pilha TCP/IP – “User Datagram Protocol” (UDP) – “Transmission Control Protocol” (TCP) • UDP – Não confiável – Interface orientada à mensagem PUC-SP 150 Resumo ( continuação) • TCP – Protocolo de transporte mais utilizado na Internet – Completamente confiável – Interface orientada a fluxo – Utiliza retransmissão adaptativa PUC-SP 151 Resumo ( continuação ) • Porta de protocolo – Número Inteiro – Usado para identificar a aplicação no transmissor e no receptor – Permite multiplas aplicações comunicando simultaneamente e sem ambiguidade – ftp://ftp.registro.br/innotes/iana/assignments/port-numbers PUC-SP 152