Redes de Computadores Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza
Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo ou quaisquer partes do documento, em especial a interpretação de tradução, reprodução, distribuição ou comercialização física ou na Web do conteúdo contido nos slides, estão sujeitas a autorização prévia pelo autor. Hugo Vieira Lucena de Souza, 2014 Todos os textos, nomes, marcas e figuras de outras publicações e autores contidos neste documento estão devidamente referenciados através de suas obras originais e protegidos pelas leis de propriedades intelectuais.
Agenda Princípios da camada de transporte de dados Serviços e transporte; Cabeçalhos dos protocolos; Protocolos UDP Comunicação não orientada a conexão Cabeçalho UDP Serviços e configurações do protocolo Protocolo TCP Comunicação orientada a conexão Cabeçalho TCP Serviços e configuração do protocolo Referências
É a camada que dispõe o controle para o transporte dos dados para conexões TCP e UDP; Provém os serviços de Multiplexação e Demultiplexação para os princípios de controle de congestionamento e fluxo dos dados; Compreende o transporte lógico fim-a-fim entre os hospedeiros emissor e receptor; Protocolos de transporte executam em sistemas terminais;
Os protocolos dessa camada são responsáveis por gerir o serviços de transporte na Internet, tais como: Entrega confiável, ordenada, monitorada ponto a ponto [TCP]; Entrega não confiável, com o esforço necessário para entregá-la, não ordenada, ponto a ponto ou multiponto [UDP]; Uso de segmentos para viabilizar as unidades de dados trocadas entre entidades da camada de transporte - Transport Protocol Data Unit TPDU;
Se a camada de transporte também prover o controle lógico entre os endereços, qual a diferença dela para a camada de rede? Na camada de rede os dados são transferidos entre os sistemas; Na camada de transporte os dados são transferidos entre os processos que dependem da camada de rede; Os serviços de transporte desta camada estão descritos principalmente por dois protocolos principais: TCP e UDP;
Os conceitos de Multiplexação e Demultiplexação envolvem entregas de entendimento comum; Na Multiplexação há a junção dos dados de múltiplos processos de aplicações de rede, envelopando dados com cabeçalho (usado depois para Demultiplexação) para compatibilizar uma transmissão com sucesso; Na Demultiplexação há a entrega de segmentos recebidos para os processos da camada de aplicação recebendo e anexando os dados de maneira correta; Como ocorre? - Multiplexação <-> Demultiplexação;
Os conceitos de Multiplexação e Demultiplexação envolvem entregas de entendimento comum; Na Multiplexação há a junção dos dados de múltiplos processos de aplicações de rede, envelopando dados com cabeçalho (usado depois para Demultiplexação) para compatibilizar uma transmissão com sucesso; Na Demultiplexação há a entrega de segmentos recebidos para os processos da camada de aplicação recebendo e anexando os dados de maneira correta; Como ocorre? - Multiplexação <-> Demultiplexação;
Vários dados convergem e depois divergem; [1] Conversões de pacotes de dados durante o tráfego;
Ambos os métodos são baseados em números de porta e endereços IP para o remetente e receptor - porta de remetente e receptor estão em cada segmento; Logicamente o mesmo número de porta para as aplicações; 32 bits Uso deste padrão de cabeçalho nos protocolos Porta remetente Porta receptor Campos do cabeçalho Bits segmentados; Campos individuais; Dados das aplicações de rede
O primeiro protocolo a estudarmos é o User Datagram Protocol [UDP]; Elimina o estabelecimento de conexão, o que pode causar retardo no envio/recebimento; Por ser simples, e não possuir conexão, automaticamente não mantém estado dos objetos do receptor e emissor; Possui um cabeçalho com poucos dados de segmento sem controle de congestionamento podendo transmitir os dados rapidamente;
Dados entregues fora de ordem, com erros e podendo ser perdidos; Utilizados em meios chamados contínuos, como aplicações de streaming e aplicações tolerantes a perdas sem afeto no envio de informações; O uso do UDP ganha destaque em outros protocolos afins tais como o DNS, o SNMP, e outros; Apesar de possuir confiabilidade menor Este protocolo possui uma performance superior ao TCP pelos aos seus processos;
32 bits Porta origem Comprimento Porta destino Checksum Dados de aplicação (mensagem) Cabeçalho do protocolo UDP;
Conhecendo o cabeçalho do UDP vemos os seguintes campos: Porta Origem: Possui a porta de origem enviada; Porta Destino: Possui a porta de destino que será recebida; Comprimento: Tamanho do cabeçalho em bytes; Checksum: Detector de erros durante o tráfego dos dados; Dados: Dados de aplicações enviados no cabeçalho, etc.;
Já o protocolo TCP possui um complexidade bem mais aparente em suas características devido aos serviços providos por ele: Conexão ponto a ponto: 1 receptor + 1 transmissor; Fluxo de bytes ordenado e confiável; Transmissão Fullduplex: Controle contínuo na recepção e envio; Dutado: tamanho de janela comum e controlado; Orientado: handshaking estabelecimento da conexão aperto de mão;
URG: dados urgentes (pouco usados) ACK: no. ACK válido PSH: envia dados já (pouco usado) RST, SYN, FIN: gestão de conexão (comandos de estabelecimento, liberação) Checksum Internet (como UDP) Cabeçalho do protocolo TCP; Porta origem Tam. cab. 32 bits Porta destino Número de seqüência Número de reconhecimento sem uso U AP R S Checksum F Janela receptor Ptr dados urg. Opções (Tamanho variável) Dados para as aplicações de rede (mensagem) Contagem de dados por bytes (não segmentos!) Número de bytes rcpt quer aceitar
Conhecendo o cabeçalho do TCP, com os seguintes campos: Porta Origem: Possui a porta de origem enviada; Porta Destino: Possui a porta de destino que será recebida; Número de sequência: Contém o número do segmento em uma ordem de envio/recebimento; Tamanho do cabeçalho: Contém o número que informa o tamanho co cabeçalho em bytes; Sem uso: Campo não usado no cabeçalho;
Especificação e características do cabeçalho TCP: USR: Dados urgentes Ordem prior de envio/recebimento; Ack: Importante para confirmação de conexão; PSH: Utilizado para envio de dados; RST, FYN: Utilizados para gerenciamento da conexão; Checksum: Detector de erros durante a comunicação (segmentos); Dados Urgentes: Dados não sequenciados; Opções: Dados de observação que podem ser adicionados; Dados para aplicações de rede: Dados de aplicações enviados no cabeçalho, etc.;
Os cabeçalhos contém as informações essenciais para prover a ordenação da comunicação para priorizar o sequenciamento dos pacotes de forma coesa e tangível; A segmentação e realizada com números dentro do fluxo dos bytes para acumular envios e respostas paralelamente entre os dispositivos para verificar a ausência de algum dado; Para isso é importante termos campos que sinalizem recebimento; SYN,FYN, ACK (pesquisar); o envio e
Envio de um certo Dado por A Estação A Estação B B reconhece a chegada De C, ecoa C de volta A reconhece chegada do C ecoado Estaçao A-> Estaçao B Estaçao B-> Estaçao A Sequencia (Ida): 42 Ack (Volta): 79 Dado: C tempo Sequencia (Ida): 79 Ack (Volta): 43 Dado: C
Cliente PO: 2031, PD: 80, Seq: 100, Ack: 0, Janela: 3 PO: 2031, PD: 80, Seq: 101, Ack: 26, Janela: 3 PO: 2031, PD: 80, Seq: 102, Ack: 26, Janela: 3 PO: 2031, PD: 80, Seq: 103, Ack: 30, Janela: 3 PO: 2031, PD: 80, Seq: 104, Ack: 33, Janela: 3 PO: 2031, PD: 80, Seq: 105, Ack: 36, Janela: 3 PO: 2031, PD: 80, Seq: 106, Ack: 37, Janela: 3 Syn Ack, Syn Ack Ack Ack Ack Fyn Fyn Servidor PO:80, PD: 2031, Seq: 25, Ack: 101, Janela: 3 PO:80, PD: 2031, Seq: 26, Ack: 103, Janela: 3 PO:80, PD: 2031, Seq: 27, Ack: 103, Janela: 3 PO:80, PD: 2031, Seq: 28, Ack: 103, Janela: 3 PO:80, PD: 2031, Seq: 29, Ack: 103, Janela: 3 PO:80, PD: 2031, Seq: 30, Ack: 104, Janela: 3 PO:80, PD: 2031, Seq: 31, Ack: 104, Janela: 3 PO:80, PD: 2031, Seq: 32, Ack: 104, Janela: 3 PO:80, PD: 2031, Seq: 33, Ack: 105, Janela: 3 PO:80, PD: 2031, Seq: 34, Ack: 105, Janela: 3 PO:80, PD: 2031, Seq: 35, Ack: 105, Janela: 3 PO:80, PD: 2031, Seq: 36, Ack: 106, Janela: 3
E se houver erros? A sequência de envio e respostas precisa esta devidamente atualizada para evitar a desorganização dos dados; O receptor avisa o recebimento do último registrado porem a confirmação não chega ao emissor. O emissor espera um tempo para reenviar o segmento; Para isso se faz necessário a implementação de uma memória auxiliar buffer para estabelecer o controle de fluxo; Gerenciamento de conexões, congestionamento e sockets;
Comunicação TCP Perda de pacote; Princípios da camada de transporte de dados Estação A Estação B Host A Host B X perda tempo Cenário do ACK perdido tempo ACKs cumulativos
Concluímos que: A camada de transporte impõe o processo de transmissão/ recepção e gerenciamento lógico dos dados pelos protocolos para prover os serviços das camadas de aplicação e rede; Protocolos orientados ou não TCP e UDP; Comunicação, padronizada, organização e segmentação; Dúvidas?
Referências [1] TELECO. Inteligência em Comunicação. Foto-reprodução Multiplexação e Demultiplexação. Disponível em: < http://www.teleco.com.br/curso/imagens/mux%20-%20fig1.gif > Acesso em 13 Mai. 2014;