Capítulo 9: Camada de Transporte Introdução a Redes v5.1 Prof. Kleber Rezende 31/08/2017
9.0 Introdução 9.1 Protocolos da Camada de Transporte 9.2 TCP e UDP 9.3 Resumo 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 2
Ao concluir esta seção, você será capaz de: Descrever a função da camada de transporte no gerenciamento do transporte de dados na comunicação fim a fim. Descrever as características dos protocolos TCP e UDP, incluindo os números de porta e seus usos. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 3
2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 4
A camada de transporte é responsável por estabelecer uma sessão de comunicação temporária entre duas aplicações e de transferir dados entre elas. A camada de transporte fornece serviços como: o Suporte a fluxo de dados orientado a conexão o Confiabilidade o Controle de fluxo o Multiplexação 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 5
Rastrear conversas específicas Rastreamento de cada fluxo de conversa entre uma aplicação origem e uma aplicação destino separadamente. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 6
Segmentar dados e reagrupar segmentos Divisão dos dados em segmentos que são mais fáceis de gerenciar e transportar. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 7
Identificar as aplicações Garantir que, mesmo com várias aplicações em execução em um dispositivo, todas as aplicações receberão os dados corretos. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 8
A segmentação dos dados em blocos menores permite que vários tipos de comunicações, de diversos usuários, sejam intercalados (multiplexados) na mesma rede. A camada de transporte adiciona um cabeçalho que contém dados binários para identificar cada segmento de dados e permitir que vários protocolos da camada de transporte executem diversas funções no gerenciamento da comunicação de dados. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 9
A camada de transporte também é responsável por gerenciar a confiabilidade. Algumas aplicações podem prescindir da confiabilidade. Os requisitos da camada de transporte variam de aplicação para aplicação. A suíte TCP/IP fornece dois protocolos na camada de transporte: o protocolo TCP (Transmission Control Protocol) e o protocolo UDP (User Datagram Protocol). O protocolo IP usa esses protocolos de transporte para que os hosts possam se comunicar e transferir dados. O TCP é considerado um protocolo confiável e completo, que garante que todos os dados cheguem ao destino. Ao contrário, o UDP é um protocolo muito simples que não fornece qualquer confiabilidade. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 10
O transporte TCP é confiável porque possibilita a confirmação da entrega do pacote. Há três operações básicas para garantir a confiabilidade com o TCP: o Numeração e rastreamento de segmentos de dados transmitidos por uma aplicação específica a um host específico o Confirmação dos dados recebidos o Retransmissão dos dados não confirmados após certo período 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 11
Algumas aplicações não exigem confiabilidade. Confiabilidade gera sobrecarga adicional e possíveis atrasos na transmissão. Adicionar sobrecarga para garantir a confiabilidade de algumas aplicações pode reduzir a utilidade da aplicação e prejudicá-la. Se a confiabilidade não for uma exigência, o protocolo UDP é o melhor protocolo de transporte. O protocolo UDP oferece as funções básicas para fornecer os segmentos de dados entre as aplicações apropriadas, com pouquíssima sobrecarga e verificação de dados. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 12
O TCP é a melhor opção para: Aplicações cujos segmentos precisam chegar em uma sequência específica para serem processadas corretamente. Aplicações nas quais todos os dados devem ser completamente recebidos para serem considerados úteis. Aplicações que precisam do protocolo TCP incluem: bancos de dados, navegadores web, clientes de e-mail. O protocolo UDP é a melhor opção para aplicações que toleram alguma perda de dados durante a transmissão, mas não aceitam atrasos na transmissão. As aplicações que usam o protocolo UDP incluem: Transmissão de áudio ao vivo Transmissão de vídeo ao vivo VoIP (Voice over IP) 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 13
2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 14
Além de ofertar suporte às funções básicas de segmentação e reagrupamento de dados, o protocolo TCP fornece os seguintes serviços: o Estabelecimento de sessão o Entrega confiável o Entrega na mesma ordem o Controle de fluxo 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 15
O TCP é um protocolo stateful. Ele rastreia o estado da sessão de comunicação registrando as informações enviadas e as informações confirmadas. Cada segmento TCP tem 20 bytes no cabeçalho que encapsulam os dados da camada de aplicação, como mostra a imagem. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 16
2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 17
O UDP é um protocolo stateless. Nem o emissor nem o receptor são obrigados a rastrear o estado da sessão de comunicação. A confiabilidade tem que ser tratada pela aplicação. Aplicações de vídeo e voz ao vivo precisam entregar os dados rapidamente e podem tolerar alguma perda de dados. Elas se ajustam perfeitamente ao protocolo UDP. Os pedaços de comunicação em UDP são chamados de datagramas. Esses datagramas são enviados com o "melhor esforço" pelo protocolo. O protocolo UDP tem uma sobrecarga baixa de 8 bytes. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 18
A camada de transporte deve separar e gerenciar várias comunicações com diferentes requisitos de transporte. Diversas aplicações enviam e recebem dados por meio da rede ao mesmo tempo. Valores de cabeçalho exclusivos permitem que os protocolos TCP e UDP gerenciem essas várias conversas simultâneas identificando as aplicações. Esses identificadores exclusivos são os números de porta. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 19
Porta de origem o o O número da porta de origem é escolhido dinamicamente pelo dispositivo emissor para identificar uma conversa entre dois dispositivos. Geralmente, um cliente HTTP envia várias requisições HTTP para um servidor web ao mesmo tempo. Cada conversa HTTP é rastreada pelas portas origem. Porta de destino o o Usada para identificar uma aplicação ou um serviço em execução no servidor. O servidor pode oferecer mais de um serviço ao mesmo tempo: um serviço web na porta 80 e um serviço de FTP na porta 21 simultaneamente. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 20
A combinação do endereço IP origem e o número da porta de origem ou o endereço IP destino e o número da porta de destino é conhecida como socket. O socket é usado para identificar o servidor e o serviço que está sendo requisitado pelo cliente. Dois sockets se combinam para formar um par de sockets: (192.168.1.5:1099, 192.168.1.7:80) Os sockets permitem que vários processos em execução em um cliente e várias conexões com um processo em um servidor se diferenciem uns dos outros. O número da porta de origem serve de endereço de retorno para a aplicação que faz a requisição. Cabe à camada de transporte rastrear os sockets ativos. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 21
Números de porta IANA (Internet Assigned Numbers Authority) é o órgão responsável por atribuir vários padrões de endereçamento, incluindo os números de porta. Números de portas muito conhecidas 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 22
Conexões TCP não explicadas podem indicar uma ameaça maior à segurança. Netstat é um utilitário de rede importante que pode ser usado para verificar as conexões ativas em um host. Use netstat para listar os protocolos em uso, o endereço e os números de porta locais, o endereço e os números de porta externos, e o estado da conexão. Por padrão, o comando netstat tentará resolver os endereços IP em nomes de domínio e os números de porta em aplicações conhecidas. A opção -n pode ser usada para exibir endereços IP e números de porta em sua forma numérica. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 23
Ao concluir esta seção, você será capaz de: Explicar como os processos de estabelecimento e encerramento de sessão TCP tornam a comunicação confiável. Explicar como as unidades de dados de protocolo TCP são transmitidas e confirmadas para garantir a entrega. Descrever os processos do cliente UDP para estabelecer a comunicação com um servidor. Comparar UDP e TCP 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 24
2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 25
Cada processo de aplicação em execução no servidor usa um número de porta. Um servidor específico não pode ter dois serviços atribuídos ao mesmo número de porta no mesmo serviço de camada de transporte. Uma aplicação ativa em um servidor atribuída a uma porta específica é considerada aberta. Toda requisição de cliente endereçada a uma porta aberta é aceita e processada pela aplicação associada no servidor a essa porta. Pode haver muitas portas abertas simultaneamente em um servidor, uma para cada aplicação ativano servidor. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 26
Uma conexão TCP é estabelecida em três etapas: 1. O cliente iniciador requisita uma sessão de comunicação clienteservidor com o servidor. 2. O servidor confirma a sessão de comunicação cliente-servidor e requisita uma sessão de comunicação de servidor-cliente. 3. O cliente iniciador confirma a sessão de comunicação servidor-cliente. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 27
Um flag TCP FIN é usado para encerrar a conexão TCP. 1. Quando o cliente não tem mais dados para enviar no fluxo, ele envia um segmento com um flag FIN ligado. 2. O servidor envia ACK para confirmar o recebimento de FIN para encerrar a sessão do cliente com o servidor. 3. O servidor envia FIN para o cliente para encerrar a sessão do servidor com o cliente. 4. O cliente responde com ACK para confirmar o FIN do servidor. 5. Depois que todos os segmentos tiverem sido confirmados, a sessão será encerrada. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 28
O handshake triplo: Estabelece que o dispositivo destino está presente na rede. Verifica se o dispositivo destino tem um serviço ativo e aceita requisições no número de porta de destino que o cliente iniciador pretende usar. Informa ao dispositivo destino que o cliente origem pretende estabelecer uma sessão de comunicação nesse número de porta. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 29
2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 30
Os segmentos TCP usam números de sequência para identificar e reconhecer cada segmento com exclusividade, rastrear a ordem dos segmentos e indicar como reagrupar e reordenar os segmentos recebidos. Um ISN (initial sequence number, número de sequência inicial) é escolhido aleatoriamente durante a configuração da sessão TCP. O ISN é então incrementado pelo número de bytes transmitidos. O processo TCP receptor coloca os dados do segmento em um buffer até todos os dados serem recebidos e reagrupados. Os segmentos recebidos fora de ordem são retidos para processamento posterior. Os dados são entregues à camada de aplicação somente depois de terem sido completamente recebidos e reagrupados. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 31
O objetivo do protocolo TCP é confirmar se cada segmento chegou a seu destino. A configuração da sessão TCP assegura que o destino esteja acessível e também pronto para receber os dados. O processo TCP no host destino confirma os dados recebidos da aplicação origem. O TCP permite a retransmissão dos segmentos perdidos. O TCP garante que todos os segmentos sejam reordenados corretamente no recebimento. O encerramento da sessão TCP possibilita às partes terminarem uma sessão TCP corretamente quando não há dados para serem transferidos (flag FIN). Um endpoint TCP pode encerrar uma sessão abruptamente se isso for necessário (flag RST). O vídeo na página 9.2.2.2 aborda os números de sequência e as confirmações TCP. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 32
O TCP tem métodos para gerenciar as perdas de segmentos. Entre esses métodos, há um mecanismo para retransmitir segmentos com dados não confirmados. O vídeo na página 9.2.2.3 aborda a retransmissão no TCP. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 33
O TCP fornece mecanismos para o controle de fluxo. O controle de fluxo garante que os endpoints TCP possam receber e processar dados de forma confiável. O TCP cuida do controle de fluxo ajustando a taxa de fluxo de dados entre a origem e o destino em determinada sessão. A função de controle de fluxo TCP inclui um campo de cabeçalho de 16 bits chamado Windows size (Tamanho da janela). O tamanho da janela é o número de bytes que o dispositivo de destino de uma sessão TCP pode aceitar e processar ao mesmo tempo. A origem e o destino TCP concordam com o tamanho de janela inicial quando a sessão TCP é estabelecida. Os endpoints TCP podem ajustar o tamanho da janela durante uma sessão se necessário. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 34
O congestionamento de rede geralmente resulta em pacotes descartados. Os segmentos TCP que não forem entregues acionam uma retransmissão. A retransmissão de segmentos TCP pode piorar o congestionamento. A origem pode prever um certo nível de congestionamento de rede verificando a taxa com que os segmentos TCP são enviados, mas não confirmados. A origem pode reduzir o número de bytes enviados antes de receber uma confirmação quando um congestionamento é detectado. A origem reduz o número de bytes não confirmados que envia, mas não o tamanho da janela, que é determinado pelo destino. Normalmente, o destino não detecta o congestionamento de rede e não reconhece a necessidade de sugerir um novo tamanho de janela. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 35
2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 36
O UDP é um protocolo simples. O UDP fornece as funções básicas da camada de transporte. O UDP tem uma sobrecarga mais baixa que o TCP. O UDP não é orientado a conexão e não fornece mecanismos sofisticados de retransmissão, sequenciamento e controle de fluxo. As aplicações que executam UDP ainda podem contar com confiabilidade, mas ela precisa ser implementada na camada de aplicação. Contudo, o UDP não é inferior. Ele foi projetado para ser mais simples e mais rápido que o TCP, em detrimento da confiabilidade. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 37
O UDP não rastreia os números de sequência da mesma maneira que o TCP. O UDP não tem um meio de reordenar os datagramas em sua ordem de transmissão. O UDP apenas reagrupa os dados na ordem em que foram recebidos. A aplicação precisa identificar a sequência correta, se necessário. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 38
As aplicações UDP em servidores também recebem números de portas muito conhecidas ou registradas. As aplicações e serviços UDP em execução no servidor aceitam requisições de clientes UDP. As requisições recebidas em determinada porta são encaminhadas para a aplicação apropriada de acordo com os números de porta. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 39
A comunicação UDP cliente-servidor também é iniciada por uma aplicação cliente. O processo do cliente UDP seleciona dinamicamente um número de porta e o utiliza como a porta de origem. A porta de destino geralmente é o número de porta muito conhecida ou registrada que é atribuído ao processo do servidor. O mesmo par de portas origem e destino é usado no cabeçalho de todos os datagramas da transação. Os dados que retornam ao cliente a partir do servidor tem os números de porta de origem e destino no cabeçalho do datagrama invertidos. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 40
2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 41
O TCP processa todas as tarefas relacionadas à camada de transporte. Isso libera a aplicação de ter que gerenciar essas tarefas. As aplicações podem simplesmente enviar o fluxo de dados para a camada de transporte e usar os serviços TCP. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 42
Há três tipos de aplicações que são mais adequadas para o UDP: Aplicações de vídeo ao vivo e multimídia - podem tolerar alguma perda de dados, mas exigem pouco ou nenhum atraso. Os exemplos incluem VoIP e transmissões de vídeo ao vivo. Aplicações simples de requisição e resposta - aplicações com transações simples em que o host envia uma requisição e pode ou não receber uma resposta. Exemplos incluem DNS e DHCP. Aplicações que tratam da confiabilidade por conta própria - comunicações unidirecionais, em que o controle de fluxo, a detecção de erros, as confirmações e a recuperação de erros não são necessários ou podem ser processados pela aplicação. Exemplos incluem SNMP e TFTP. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 43
Objetivos do Capítulo: Explicar como os protocolos e os serviços da camada de transporte auxiliam a comunicação nas redes de dados. Comparar as operações de protocolos da camada de transporte no suporte da comunicação fim a fim. 2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 44
2013 Cisco e/ou suas afiliadas. Todos os direitos reservados. Este documento contém informações públicas da Cisco 45
Obrigado.