440 likes | 600 Views
Redes de computadores e a Internet. Camada de Transporte. Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte: Multiplexação/demultiplexação Transferência de dados confiável Controle de fluxo Controle de congestionamento
E N D
Redes de computadores e a Internet Camada de Transporte • Objetivos do capítulo: • Entender os princípios por trás dos serviços da camada de transporte: • Multiplexação/demultiplexação • Transferência de dados confiável • Controle de fluxo • Controle de congestionamento • Aprender sobre os protocolos de transporte na Internet: • UDP: transporte não orientado à conexão • TCP: transporte orientado à conexão • Controle de congestionamento do TCP
Redes de computadores e a Internet Camada de Transporte • 3.1 Serviços da camada de transporte • 3.2 Multiplexação e demultiplexação • 3.3 Transporte não orientado à conexão: UDP • 3.4 Transporte orientado à conexão: TCP • Estrutura do segmento • Transferência confiável de dados • Controle de fluxo • Gerenciamento de conexão • 3.5 Princípios de controle de congestionamento • 3.6 Controle de congestionamento do TCP
Redes de computadores e a Internet Camada de Transporte • Ampliar o serviço de entrega da camada de rede entre dois sistemas finais para um serviço de entrega entre dois processos da camada de aplicação que rodam nos sistemas finais. Como duas entidades podem se comunicar de maneira confiável por um meio que pode perder e corromper dados?
Redes de computadores e a Internet Protocolos e Serviços de Transporte Fornecem comunicação lógica entre processos de aplicação em diferentes hospedeiros Os protocolos de transporte são implementados e executados nos sistemas finais. Lado emissor: quebra as mensagens da aplicação em segmentos e envia para a camada de rede Lado receptor: remonta os segmentos em mensagens e passa para a camada de aplicação Há mais de um protocolo de transporte disponível para as aplicações Internet: TCP e UDP
Redes de computadores e a Internet Camada de Transporte vs. Camada de Rede • Camada de rede: comunicaçãológica entre oshospedeiros • Camada de transporte:comunicaçãológica entre osprocessos • Os protocolosdacamada de transportedependem dos serviçosdacamada de rede • Analogia com uma casa familiar: • 12 criançasenviamcartaspara 12 crianças • Processos = crianças • Mensagensdaaplicação = cartasnos envelopes • Hospedeiros = casas • Protocolo de transporte = Anna e Bill • Protocolodacamada de rede = serviço postal
Redes de computadores e a Internet Camada de Transporte vs. Camada de Rede • Analogia com uma casa familiar: • Anna e Bill, aorecolherem as cartas e colocarem-nasnacaixa postal fazemtodo o seutrabalhodentro de suascasas. • Damesmamaneiraprotocolosdacamada de transporte “moram” nossistemasfinais. • Roteadoresnãoreconhecemnehumainformaçãoque a camada de transportepossateranexadoàsmensagensdaaplicaçãonemagemsobreela. • Se Anna e Bill foremsubstituidospor Susan e Harvey, podeacontecer do serviçonão ser o mesmo. • As cartaspodem ser recolhidas com menosfrequência e algumaspodem se perder. Simulação do protocolo UDP.
Redes de computadores e a Internet Protocolos da Camada de Transporte da Internet Confiável, garante ordem de entrega (TCP- Transmission Control Protocol – Protocolo de controle de transmissão) Controle de congestionamento Controle de fluxo Orientado à conexão • Não confiável, sem ordem de entrega: UDP (User Datagram Protocol- Protocolo de datagrama de Usuário) • Serviços não disponíveis: Garantia a atrasos Garantia de banda
Redes de computadores e a Internet Protocolos da Camada de Transporte da Internet • TCP - Fornece • Transferência confiável de dados. Controle de congestionamento Evita que conexões TCP “abarrotem a rede” com uma quantidade excessiva de tráfego. Isto é feito pela regulagem da taxa com a qual o lado remetente do TCP pode enviar tráfego para dentro da rede. • UDP • Fornece entrega de dados entre processos. Mas nao garente que os dados enviados cheguem. • Verificação de erros.
Redes de computadores e a Internet Camada de Transporte • 3.1 Serviços da camada de transporte • 3.2 Multiplexação e demultiplexação • 3.3 Transporte não orientado à conexão: UDP • 3.4 Transporte orientado à conexão: TCP • Estrutura do segmento • Transferência confiável de dados • Controle de fluxo • Gerenciamento de conexão • 3.5 Princípios de controle de congestionamento • 3.6 Controle de congestionamento do TCP
Redes de computadores e a Internet MULTIPLEXAÇÃO Imagine que voce está utilizando dois processos FTP, um processo Telnet e um processo HTTP. Quando a camada de transporte em seu computador receber dados da camada de rede abaixo dela, precisará direcionar os dados recebidos a um desses quatro processos. Como isto é feito?
Redes de computadores e a Internet MULTIPLEXAÇÃO
Redes de computadores e a Internet Multiplexação no hospedeiro emissor: Demultiplexação no hospedeiro receptor: Coleta dados de múltiplos sockets, envelopa os dados com cabeçalho (usado depois para demultiplexação) Entrega os segmentos recebidos ao socket correto Socket
Redes de computadores e a Internet Multiplexação e Demultiplexação orientada à conexão- TCP • No exemplo anterior das cartas, Anna quando recolhe as correspondências para colocá-las em uma caixa de correios, realiza a multiplexação e quando as coleta da caixa e entrega a cada criança, realiza demultiplexação.
Redes de computadores e a Internet PORTAS • Cada número de porta é um número de 16 bits na faixa de 0 a 65535. • Os números de porta entre 0 e 1023 são denominados números de porta bem conhecidos. • HTTP porta 80 • FTP porta 21 • Lista de porta é apresentada na RFC 1700 e atualizada em www.iana.org Ao desenvolvermosaplicações devemos atribuir a ela um número de porta.
Redes de computadores e a Internet Multiplexação e Demultiplexação orientada à conexão- TCP • Um socket TCP é identificado por uma ênupla de quatro elementos: • Endereço IP da fonte • Número de porta da fonte • Endereço IP do destino • Número de porta do destino
Redes de computadores e a Internet Multiplexação e Demultiplexação orientada à conexão- TCP
Redes de computadores e a Internet Multiplexação e Demultiplexação orientada à conexão- TCP • Como o hospedeiro A está escolhendo números de porta independentemente de C, ele poderia também atribuir um número de porta da fonte 26145 à sua conexão HTTP. Apesar disso, o servidor B ainda será capaz de demultiplexar corretamente as duas conexões que têm o mesmo número de porta de fonte, já que elas possuem endereços IP de fonte diferentes.
Redes de computadores e a Internet Multiplexação e Demultiplexação não orientada à conexão- UDP Socket UDP • Cria sockets com números de porta entre 1024 e 65535 que não esteja sendo usado naquele instante: • Socket UDP identificado por dois valores: • (endereço IP de destino, número da porta de destino) • Quando o hospedeiro recebe o segmento UDP: Verifica o número da porta de destino no segmento Direciona o segmento UDP para o socket com este número de porta • Datagramas com IP de origem diferentes e/ou portas de origem diferentes são direcionados para o mesmo socket
Redes de computadores e a Internet P2 P1 P1 P3 PF: 9157 cliente IP: A PD: 6428 cliente IP: B servidor IP: C PF: 6428 PF: 6428 PF: 5775 PD: 6428 PD: 9157 PD: 5775 Multiplexação e Demultiplexação não orientada à conexão- UDP Datagramas com IP de origem diferentes e/ou portas de origem diferentes são direcionados para o mesmo socket PF: Porta da Fonte PD: Porta de Destino
Redes de computadores e a Internet P1 Multiplexação e Demultiplexação orientada à conexão- TCP Datagramas com IP de origem diferentes e/ou portas de origem diferentes são direcionados para o sockets diferentes P1 P2 P6 P4 P5 P3 PF:7532 DP: 80 F-IP: C D-IP: B PF: 26145 PF: 26145 cliente IP: A PD: 80 PD: 80 cliente IP: C servidor IP: B F-IP: A F-IP: C D-IP: B D-IP: B PF: Porta da Fonte PD: Porta de Destino F-IP : Endereço IP da fonte D-IP: Endereço IP do destino
Redes de computadores e a Internet Como funciona a demultiplexação Computadorrecebedatagramas (pacotes) IP CadapacotepossuiendereçoIP de origem e IP de destino. Cadapacotecarrega 1 segmentodacamada de transporte. Cadasegmentopossuinúmeros de porta de origem e destino (lembre-se: números de portabemconhecidosparaaplicaçõesespecíficas) O hospedeirousaendereços IP e números de portaparadirecionar o segmentoao socket apropriado
Redes de computadores e a Internet Multiplexação e Demultiplexação orientada à conexão- TCP Socket TCP identificado por 4 valores: Endereço IP de origem End. porta de origem Endereço IP de destino End. porta de destino Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado Hospedeiro servidor pode suportar vários sockets TCP simultâneos: Cada socket é identificado pelos seus próprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado
Redes de computadores e a Internet Diferença entre Demultiplexação do TCP e UDP • UDP • Um socket UDP é totalmente identificado por dois elementos, consistindo em um endereço IP de destino e um número de porta de destino. Consequentemente, se dois segmentos UDP tiverem IP de fonte e/ou números de porta de fonte diferentes, porém o mesmo endereço IP de destino e o mesmo número de porta de destino, eles serão direcionados ao mesmo processo de destino por meio do mesmo socket de destino.
Redes de computadores e a Internet Diferença entre Demultiplexação do TCP e UDP • TCP • Um socket TCP é totalmente identificado por 4 elementos, consistindo em um endereço IP de destino e um número de porta de destino, IP da fonte e número da porta da fonte. • Assim, quando um segmento TCP que vem da rede chega a um hospedeiro, este usa todos os quatro valores para direcionar (demultiplexar) o segmento para o socket apropriado.
Redes de computadores e a Internet Demux orientada à conexão servidor Web “threaded” • Nem sempre existe uma correspondência unívoca entre sockets de conexão e processos. • Na verdade, os servidores WEB de alto desempenho atuais muitas vezes utilizam um processo, mas criam uma nova thread (sub-processo) com um novo socket de conexão para cada nova conexão cliente.
Redes de computadores e a Internet PF:7532 PF: 26145 P1 P1 P2 P3 cliente IP: A DP: 80 DP: 80 Demux orientada à conexão servidor Web “threaded” P4 F-IP: C D-IP: B PF: 26145 DP: 80 cliente IP: C servidor IP: B F-IP: A F-IP: C D-IP: B D-IP: B PF: Porta da Fonte PD: Porta de Destino F-IP : Endereço IP da fonte D-IP: Endereço IP do destino 3 - 26
Redes de computadores e a Internet Camada de Transporte • 3.1 Serviçosdacamada de transporte • 3.2 Multiplexação e demultiplexação • 3.3 Transportenãoorientado à conexão: UDP • 3.4 Transporteorientado à conexão: TCP • Estrutura do segmento • Transferênciaconfiável de dados • Controle de fluxo • Gerenciamento de conexão • 3.5 Princípios de controle de congestionamento • 3.6 Controle de congestionamento do TCP
Redes de computadores e a Internet UDP: User Datagram Protocol [RFC 768] • Protocolo de transporteda Internet “semgorduras”, “semfrescuras”. • Serviço “best effort”, segmentos UDP podem ser: • Perdidos • Entreguesfora de ordempara a aplicação Sem conexão: Não há apresentação entre o UDP transmissor e o receptor Cada segmento UDP é tratado de forma independente dos outros
Redes de computadores e a Internet UDP: User Datagram Protocol [RFC 768] Por que existe um UDP? Não há estabelecimento de conexão (que possa redundar em atrasos). Simples: não há estado de conexão nem no transmissor, nem no receptor. Cabeçalho de segmento reduzido. Não há controle de congestionamento: UDP pode enviar segmentos tão rápido quanto desejado (e possível).
Redes de computadores e a Internet Mais sobre UDP Possui apenas 4 CAMPOS DE 2 BYTES 32 bits Muitousadoporaplicações de multimídiacontínua (streaming) Tolerantes à perda Sensíveis à taxa de transmissão Usos do UDP: • DNS • Telefoniapor Internet • Protocolo de roteamento- RIP • SNMP – Protocolo de gerenciamento de rede Porta da Fonte # Porta do Destino # Comprimento Soma de Verificação Dados da Aplicação (Mensagem) Estrutura de segmento UDP A soma de verificação é uma operação matemática utilizada para determinar se bits dentro do segmento UDP foram alterados
Redes de computadores e a Internet Mais sobre UDP • DNS roda sobre UDP para evitar atrasos de estabelecimentos de conexão, como é realizado pelo TCP. • SNMP utiliza o UDP, pois aplicações de gerenciamento de rede frequentemente devem funcionar quando a rede está em estado sobregarregado – exatamente quando é difícil conseguir transferência confiável de dados com congestionamento controlado.
Redes de computadores e a Internet Mais sobre UDP • O UDP não possui controle de congestionamento, assim a rede poderia ser inundada com pacotes UDP, o que causaria mais atrasos das conexões TCP. • É possível que uma aplicação tenha transferência confiável de dados usando UDP?
Redes de computadores e a Internet Mais sobre UDP • Sim desde que a confiabilidade esteja embutida na aplicação. • Assim as aplicações podem se comunicar de maneira confiável sem ter de se sujeitar às limitações da taxa de transmissão impostas pelo mecanismo de controle de congestionamento do TCP. • Muitas aplicações proprietárias de áudio e vídeo fazem exatamente isto – rodam sobre UDP, mas dispõem de reconhecimentos e retransmissões embutidos na aplicação para reduzir a perda de pacotes.
Redes de computadores e a Internet Camada de transporte • 3.1 Serviçosdacamada de transporte • 3.2 Multiplexação e demultiplexação • 3.3 Transportenãoorientado à conexão: UDP • 3.4 Transporteorientado à conexão: TCP Estrutura do segmento Transferênciaconfiável de dados Controle de fluxo Gerenciamento de conexão • 3.5 Princípios de controle de congestionamento • 3.6 Controle de congestionamento do TCP
Redes de computadores e a Internet Princípios de transferência confiável de dados TRANSFERÊNCIA CONFIÁVEL DE DADOS • Importantenascamadas de aplicação, transporte e enlace • Top 10 nalista dos tópicosmaisimportantes de redes!
Redes de computadores e a Internet Princípios de transferência confiável de dados O TCP é um protocolo confiável de transferência de dados que é implementado sobre uma camada de rede não confiável. (IP)
Redes de computadores e a Internet TCP: RFCs: 793, 1122, 1323, 2018, 2581 • Ponto-a-ponto: • Um transmissor, um receptor. • Orientado à conexão: • Apresentação (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes datroca de dados. • Serviço full-duplex • Dados dacamada de aplicaçãofluem de A para B aomesmo tempo emqueos dados dacamada de aplicaçãofluem de B para A.
Redes de computadores e a Internet ESTRUTURA DO SEGMENTO TCP URG: dados urgentes (pouco usados) contagem por bytes de dados (não segmentos!) ACK: campo de ACK é válido PSH: produz envio de dados (pouco usado) número de bytes quereceptor está pronto para aceitar RST, SYN, FIN: estabelec. de conexão (comandos de criação e término) Internet checksum (como no UDP) Controle de Fluxo Implementação de um serviço confiável de dados 3 - 38
Redes de computadores e a Internet O TCP divide o arquivo a ser transmitido em blocos de bytes. Arquivo d e 500 bytes 0 1 ........ 1000 ........ 1999 ........ 499.9999 Dados para o primeiro segmento Dados para o segundo segmento Número de reconhecimento será o número de sequência do próximo byte de dados que o hospedeiro esta aguardando. Número de sequência 0 Número de sequência 1000
Redes de computadores e a Internet EXEMPLO TELNET Host A n° de sequência inicial é 42. Host B n° de sequência inicial é 79. Os valores de sequências iniciais nem sempre começam no 0. Tamanho do arquivo 1 byte-Letra “C”.
Redes de computadores e a Internet CONTROLE DE FLUXO Controle de fluxo Transmissor não deve esgotar os buffers de recepção enviando dados rápido demais Processos de aplicação podem ser lentos para ler o buffer.
Redes de computadores e a Internet CONTROLE DE CONGESTIONAMENTO O CONTROLE DE CONGESTIONAMENTO É VERIFICADO QUANDO OCORRE UM CONGESTIONAMENTO NA REDE IP. A DIFERENÇA DO CONTROLE DE FLUXO É QUE ESTE DEVE-SE ESTRITAMENTE À VELOCIDADE DE PROCESSAMENTO DAS INFORMAÇÕES POR MEIO DAS APLICAÇÕES.