Baixe o app para aproveitar ainda mais
Prévia do material em texto
CAMADA DE TRANSPORTE PROTOCOLOS TCP E UDP CENTRO UNIVERSITÁRIO UNA – UNATEC CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES Disciplina de Serviços de Redes – 2013 Guilherme Rodrigues Pereira Serviços de Redes – Redes de Computadores Introdução (Camada de Transporte) As redes de dados e a Internet suportam a rede humana através do fornecimento de comunicação contínua e confiável entre pessoas a múltiplos serviços como e-mail, web, mensagens instantâneas, entre outros. Dados de cada uma dessas aplicações são empacotadas, transportadas e entregues ao servidor daemon apropriado ou aplicação no dispositivo de destino. Os processos descritos na camada de Transporte do modelo OSI aceitam dados da Camada de Aplicação e os preparam para endereçamento na camada de Rede. A camada de Transporte é responsável pela transferência fim-a-fim geral de dados de aplicação. Serviços de Redes – Redes de Computadores Introdução (Camada de Transporte) Serviços de Redes – Redes de Computadores Propósito da camada de transporte A camada de Transporte proporciona a segmentação de dados e o controle necessário para reagrupar esses segmentos em fluxos de comunicação. Suas responsabilidades primárias para realizar isto são: - Rastrear a comunicação individual entre as aplicações nos hosts de origem e destino. - Segmentar dados e gerenciar cada segmento. - Reagrupar os segmentos em fluxos de dados de aplicação. - Identificar as diferentes aplicações. Serviços de Redes – Redes de Computadores Propósito da camada de transporte (detalhes) Rastreamento de Conversações Individuais: - Qualquer host pode ter múltiplas aplicações que se comunicam através da rede. Cada uma destas aplicações irá se comunicar com uma ou mais aplicações em hosts remotos. É responsabilidade da camada de Transporte manter fluxos múltiplos de comunicação entre estas aplicações. Segmentação de Dados: - Como cada aplicação cria um fluxo de dados para ser enviado a uma aplicação remota, estes dados devem ser preparados para serem enviados através do meio em segmentos gerenciáveis. Os protocolos de camada de Transporte descrevem serviços que segmentam estes dados a partir da camada de Aplicação. Isto inclui o encapsulamento necessário em cada lado do segmento. Cada segmento de dados de aplicação requer a adição de cabeçalhos da camada de Transporte para indicar a qual comunicação (circuito virtual) ele está associado. Serviços de Redes – Redes de Computadores Reagrupamento de Segmentos: - No host de destino, cada segmento de dados pode ser direcionado para a aplicação apropriada. Em adição a isso, estes segmentos de dados individuais também precisam ser reconstruídos em um fluxo completo de dados que seja útil para a camada de Aplicação. Os protocolos da camada de Transporte descrevem como a informação do cabeçalho da camada de Transporte é usada para reagrupar os segmentos de dados em fluxos a serem passados para a camada de Aplicação. Propósito da camada de transporte (detalhes) Serviços de Redes – Redes de Computadores Propósito da camada de transporte (detalhes) Identificação das Aplicações: - Para passar os fluxos de dados para as aplicações apropriadas, a camada de Transporte deve identificar a aplicação de destino. Para realizar isso, a camada de Transporte designa à aplicação um identificador (número de porta). - A camada de Transporte é o link entre a camada de Aplicação e a camada de rede. Esta camada aceita dados de diferentes conversações e os passa para as camadas inferiores como segmentos gerenciáveis que podem ser finalmente multiplexados no meio. - As aplicações não precisam saber dos detalhes operacionais da rede em uso. As aplicações geram dados que são enviados de uma aplicação a outra, sem considerar o tipo de host de destino, o tipo de meio sobre o qual o dado deve trafegar, o caminho tomado pelo dado, o congestionamento em um link, ou o tamanho da rede. Da mesma forma, as camadas inferiores não possuem conhecimento sobre a existência de múltiplas aplicações. - A camada de transporte organiza os segmentos recebidos antes de entregá-los à aplicação apropriada. Serviços de Redes – Redes de Computadores Propósito da camada de transporte Serviços de Redes – Redes de Computadores Propósito da camada de transporte Serviços de Redes – Redes de Computadores Controle das conversações Segmentação e Reagrupamento - A maioria das redes tem uma limitação da quantidade de dados que podem ser incluídos em uma única PDU (Protocol Data Unit). A camada de Transporte divide os dados da aplicação em blocos de dados. No destino, a camada de Transporte reagrupa os dados antes de enviá- los à aplicação ou serviço de destino. Multiplexação de Conversação - Podem haver muitas aplicações ou serviços sendo executados em cada host na rede. Para cada aplicação ou serviço temos uma porta atribuída para que a camada de Transporte possa determinar qual aplicação ou serviço devemos acessar. Serviços de Redes – Redes de Computadores Controle das conversações Serviços de Redes – Redes de Computadores Necessidades de cada aplicação “Protocolos diferentes precisam de métodos de entrega diferentes!” Determinadas aplicações precisam de confiabilidade na entrega dos dados ao destino, onde pequenos atrasos são aceitáveis para realizar a garantia da entrega, outras, precisam de maior velocidade de forma que a retransmissão de algum segmento perdido inviabilize a comunicação. Desta forma, temos os protocolos TCP e UDP para atender as diferentes necessidades. Serviços de Redes – Redes de Computadores Necessidades de cada aplicação Serviços de Redes – Redes de Computadores Protocolo TCP O TCP é um protocolo orientado à conexão (circuito virtual), descrito na RFC 793. O TCP causa sobrecarga adicional para adicionar funções. As funções adicionais especificadas pelo TCP são as ditas entrega ordenada, entrega confiável e controle de fluxo. Cada segmento TCP tem 20 bytes de overhead (cabeçalho) que encapsula o dado da camada de Aplicação, enquanto que o segmento UDP tem apenas 8 bytes. As principais aplicações que usam TCP são: - Navegadores web (HTTP) - E-mail (SMTP, POP, IMAP) - FTP - SSH - TELNET - RDP Serviços de Redes – Redes de Computadores Protocolo UDP O UDP é um protocolo simples e sem conexão, descrito na RFC 768. Ele tem a vantagem de fornecer uma entrega de dados de baixa sobrecarga. Os segmentos de comunicação em UDP são chamados datagramas. Estes datagramas são enviados como o "melhor esforço" por este protocolo da camada de Transporte. As principais aplicações que usam UDP incluem: - Domain Name System (DNS) - Simple Network Management Protocol (SNMP) - Protocolo de Configuração Dinâmica de Host (DHCP) - Routing Information Protocol (RIP) - Trivial File Transfer Protocol (TFTP) - Jogos On-line. - Vídeo em Streaming - Voz Sobre IP (VOIP) Serviços de Redes – Redes de Computadores Cabeçalho dos Protocolos TCP e UDP Serviços de Redes – Redes de Computadores Endereçamento de porta Para diferenciar os segmentos e datagramas de cada aplicação, o TCP e o UDP têm campos de cabeçalho que podem identificar unicamente essas aplicações. Estes identificadores únicos são os números de porta. No cliente, uma porta aleatória acima de 1024 é designada para estabelecer a conexão (open ativo). No servidor, temos portas específicas abertas para cada serviço (open passivo). Por exemplo, uma solicitação de página HTTP sendo enviada a um servidor web (porta 80) sendo executado em um hostcom um endereço de IPv4 Camada 3 192.168.1.20 seria destinado ao SOCKET 192.168.1.20:80. Serviços de Redes – Redes de Computadores Endereçamento de porta Serviços de Redes – Redes de Computadores Endereçamento de porta A Internet Assigned Numbers Authority (IANA) designa números de porta. A IANA é um órgão de padrões responsável pela designação de vários padrões de endereçamento. Uma lista atual de números de porta pode ser encontrada em http://www.iana.org/assignments/port-numbers. Também podemos acessar o arquivo “services” no Windows ou Linux para visualizar esta listagem de portas. - Windows: Arquivo “services” em “C:\WINDOWS\system32\drivers\etc\”. - Linux: Arquivo “services” no diretório “/etc”. Serviços de Redes – Redes de Computadores Endereçamento de porta Serviços de Redes – Redes de Computadores Endereçamento de porta Serviços de Redes – Redes de Computadores Segmentação e Reagrupamento No TCP, cada cabeçalho de segmento contém um número sequencial. Este número sequencial permite que a camada de Transporte no host de destino reagrupe estes segmentos na ordem em que eles foram transmitidos. Isso assegura que as aplicações de destino tenham os dados na sequencia exata enviada pelo remetente. Embora os serviços que usam UDP também rastreiem as conversações entre as aplicações, eles não estão preocupados com a ordem que a informação foi transmitida, ou na manutenção de uma conexão. Não existe número sequencial no cabeçalho UDP. O UDP é um esquema mais simples e gera menos overhead do que o TCP, resultando em uma transferência mais rápida. Serviços de Redes – Redes de Computadores Segmentação e Reagrupamento Serviços de Redes – Redes de Computadores Segmentação e Reagrupamento Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Campos de cabeçalho do segmento TCP Serviços de Redes – Redes de Computadores Solicitação TCP Serviços de Redes – Redes de Computadores Solicitação TCP Serviços de Redes – Redes de Computadores Three Way Handshake Quando dois hosts se comunicam usando o TCP, uma conexão é estabelecida antes que os dados possam ser trocados (circuito virtual). Depois da comunicação ter sido completada, as sessões são fechadas e a conexão é encerrada. Os mecanismos de conexão e sessão habilitam a função de confiabilidade do TCP. Os Bits de controle no cabeçalho TCP indicam o progresso e o status da conexão (Three Way Handshake, ou handshake triplo): - Determina que o dispositivo de destino está presente na rede; - Verifica se o dispositivo de destino tem um serviço ativo e está aceitando solicitações no número de porta que o cliente deseja se conectar; - Informa o dispositivo de destino que o cliente de origem pretende estabelecer uma sessão de comunicação na porta especificada. Serviços de Redes – Redes de Computadores Three Way Handshake Para entender o processo, é importante examinar os vários valores que os dois hosts trocam. Dentro do cabeçalho TCP, existem seis campos de 1 bit que contêm a informação de controle usada para gerenciar os processos TCP. Esses campos são: - URG – Indicador de urgência (atualmente não é aplicado); - ACK – Acknowledgement (Campo de confirmação); - PSH – Função Push; - RST – Restabelecer a conexão; - SYN – Sincronizar números de sequência (Pedido para iniciar uma conexão); - FIN – Não há mais dados do remetente (Pedido para finalizar uma conexão); Serviços de Redes – Redes de Computadores Three Way Handshake Estes campos são referidos como “flags”, porque cada campo possui apenas 1 bit, portanto, tem apenas dois valores: 1 ou 0. Quando um valor de bit é definido como 1, a “flag” está ativada. Estas “flags” possibilitam iniciar ou encerrar uma conexão (circuito virtual); Serviços de Redes – Redes de Computadores Three Way Handshake – Estabelecendo conexão Serviços de Redes – Redes de Computadores Three Way Handshake – Estabelecendo conexão Serviços de Redes – Redes de Computadores Three Way Handshake – Estabelecendo conexão Serviços de Redes – Redes de Computadores Three Way Handshake – Finalizando conexão Serviços de Redes – Redes de Computadores Three Way Handshake – Finalizando conexão Serviços de Redes – Redes de Computadores Three Way Handshake – Finalizando conexão Serviços de Redes – Redes de Computadores Three Way Handshake – Finalizando conexão Serviços de Redes – Redes de Computadores Janelamento – Confirmação da entrega de dados Uma das funções do TCP é assegurar que cada segmento atinja o seu destino. Os serviços TCP no host de destino confirmam os dados que ele recebeu para a aplicação de origem. O número de sequência do cabeçalho do segmento e o número de confirmação são usados juntamente para confirmar o recebimento dos bytes de dados contidos nos segmentos. O número de sequência é o número relativo de bytes que foram transmitidos nessa sessão +1 (que é o número do próximo byte esperado). O TCP usa o número de confirmação em segmentos enviados de volta à origem para indicar o próximo byte que o receptor espera receber nessa sessão. Isto é chamado de confirmação esperada. Serviços de Redes – Redes de Computadores Janelamento – Confirmação da entrega de dados A quantidade de dados que a origem pode transmitir antes que uma confirmação seja recebida é chamada de tamanho da janela. O Tamanho de Janela é um campo no cabeçalho TCP que habilita o gerenciamento de dados perdidos e controle de fluxo. O tamanho de janela inicial é determinado durante a inicialização da sessão através do Three Way Handshake (e ajustado a cada confirmação através do RTT – Round Trip Time). O mecanismo de feedback do TCP ajusta a taxa efetiva de transmissão de dados até o fluxo máximo que a rede e o dispositivo de destino podem suportar sem perda. O TCP tenta gerenciar a taxa de transmissão de modo que todos os dados sejam recebidos e as retransmissões sejam minimizadas. Serviços de Redes – Redes de Computadores Janelamento – Confirmação da entrega de dados Serviços de Redes – Redes de Computadores Janelamento – Confirmação da entrega de dados Serviços de Redes – Redes de Computadores Janelamento – Confirmação da entrega de dados Serviços de Redes – Redes de Computadores TCP State Machine – Estados TCP Slide 53 Serviços de Redes – Redes de Computadores Protocolo UDP O UDP é um protocolo simples que fornece as funções básicas da camada de Transporte. Ele possui overhead muito mais baixo do que o TCP, já que não é orientado à conexão e não fornece mecanismos de retransmissão, sequenciamento e controle de fluxo sofisticados. Isto não significa que asaplicações que usam UDP sejam de baixa qualidade ou confiabilidade. Isto simplesmente significa que estas funções não são fornecidas pelo protocolo da camada de Transporte e devem ser implementadas em outros locais se houver necessidade (Aplicação). Serviços de Redes – Redes de Computadores Protocolo UDP Serviços de Redes – Redes de Computadores Protocolo UDP Serviços de Redes – Redes de Computadores Comparativo entre os protocolos TCP e UDP Basicamente, as diferenças entre os Protocolos da camada de transporte (TCP e UDP), são: - A garantia de entrega através do “Ack” (Acknowledgement) e retransmissão (caso ocorra perda de segmentos); - Protocolo orientado a conexão. Ambas características são do Protocolo TCP, portanto, não temos garantia de entrega e o estabelecimento de um “circuito virtual” (VC) com o protocolo UDP. Serviços de Redes – Redes de Computadores Comparativo entre os protocolos TCP e UDP Serviços de Redes – Redes de Computadores Referências CISCO CCNA Network Academy; TANENBAUM, Andrews S., Redes de Computadores. 4. ed. Rio de Janeiro: Elsevier, 2003. COMER, Douglas E., Interligação em Rede com TCP/IP - Volume I - Princípios, protocolos e arquitetura - Tradução da Quinta Edição. Rio de Janeiro: CAMPUS, 2002. CASTRO, Bruno Roberto Viana. Serviços de Rede. (Slides para aula expositiva); Slide 59 Serviços de Redes – Redes de Computadores Slide 60 Curso Superior de Tecnologia em Redes de Computadores Disciplina de Serviços de Redes Professor: Guilherme Rodrigues Pereira www.una.br
Compartilhar