Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo - Camada de Transporte • É responsável pela transmissão lógica dos dados – A camada de enlace é responsável pela transmissão física • Dois tipos de transmissão: – Orientado a conexão • TCP – Transmission Control Protocol – Não orientado a conexão • UDP – User Datagram Protocol Redes de Computadores I – Prof. Mateus Raeder Camada de Transporte • O transporte dos dados pode ser tratado na camada de enlace – Entretanto, o transporte trabalha com a pior hipótese (enlace não controlar o transporte) – Isto, então, é tratado logicamente na Camada de Transporte • Na camada de Rede (abaixo do Transporte), sabe-se apenas o host destino – Sem distinções entre qual aplicação receberá Redes de Computadores I – Prof. Mateus Raeder Camada de Transporte • TCP e UDP acrescentam um mecanismo que escolhe diferentes “locais de entrega” em um host – Porta • Vários aplicativos enviam e recebem mensagens individualmente • Necessário, pois os Sistemas Operacionais geralmente são multitarefa – Várias tarefas ao mesmo tempo Redes de Computadores I – Prof. Mateus Raeder Camada de Transporte • Portas identificam os diferentes processos sendo executados – São definidas como um número inteiro positivo – Processos que utilizam a rede utilizam determinada porta para comunicação • Um processo transmissor precisa conhecer não somente o endereço IP do destino, mas também a porta a ser utilizada – Identifica host e aplicação Redes de Computadores I – Prof. Mateus Raeder Camada de Transporte • Além da identificação do destino, a porta de origem deve ser enviada também – Assim, o processo receptor pode responder a mensagem ao processo origem Origem Destino 198.12.3.11:27789 200.19.10.1:16784 198.12.3.11:27789 200.19.10.1:16784 Identifica a conexão, permitindo Várias conexões entre Origem e Destino Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Protocolo do nível de transporte • Entrega de mensagens sem conexão – Não confiável • O UDP também permite a distinção entre os vários processos (aplicativos) nos hosts • Uma mensagem UDP carrega dados, porta de destino e porta de origem • Mensagens UDP são Datagramas Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Aplicações que utilizam UDP são totalmente responsáveis por lidar com confiabilidade – – – – – Perda de mensagens Duplicação de mensagens Retardo de mensagens Erros de transmissão Erros de conexão Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) 0 31 16 Porta Origem Porta Destino Tamanho Checksum Dados • Datagrama UDP possui 2 partes – Cabeçalho – Dados Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) 0 31 16 Porta Origem Porta Destino Tamanho Checksum Dados • Portas Origem e Destino – Número de 16 bts, utilizado para entregar os datagramas entre os programas Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) 0 31 16 Porta Origem Porta Destino Tamanho Checksum Dados • Tamanho – Tamanho total incluindo cabeçalho e dados – Contagem de octetos (valor mínimo é 8) Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) 0 31 16 Porta Origem Porta Destino Tamanho Checksum Dados • Checksum – Soma de verificação – Verifica se o Datagrama UDP está correto VERIFICA mas não RECUPERA erros Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Checksum – Campo opcional • Preenchido com zeros no caso de não ser usado • Mínimo overhead possível – Unicamente para verificar se os dados chegaram intactos e possam ser usados – Para realizar o Checksum, o UDP utiliza mais informações do que existem no seu cabeçalho – Adiciona-se um pseudocabeçalho ao datagrama Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Checksum – O pseudocabeçalho é criado com o IP origem e destino e o campo protocolo • De onde vem estas informações? – Do datagrama IP, e não do UDP – O Tamanho é o único campo extraído do UDP 0 31 16 IP Origem IP Destino 00000000 (zeros) Protocol Tamanho Pseudoheader Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Checksum – Acrescenta um octeto de zeros para preencher, fazendo-o um múltiplo de 16 bits – A soma de verificação é calculada com todo o objeto – IMPORTANTE: pseudoheader não percorre a rede 0 31 16 IP Origem IP Destino 00000000 (zeros) Protocol Tamanho Pseudoheader Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Checksum – Remetente • O remetente calcula a soma dos valores contidos nos campos • Realiza complemento de 1 no resultado • Coloca no campo checksum da mensagem – Destino • Cria o pseudocabeçalho • Realiza o mesmo cálculo do remetente • Soma o resultado ao checksum Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Checksum – Se o resultado for 0, não houve erros na mensagem – Checksum é opcional • Coloca-se 0 quando não deseja – E se o checksum no remetente resultar em 0? • Neste caso, todos os bits do checksum são marcados em 1 Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) 0 31 16 Porta Origem Porta Destino Tamanho Checksum Dados • Dados – Dados do usuário – O que será entregue para a Camada de Aplicação Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Encapsulamento Cabeçalho Ethernet Cabeçalho UDP Dados Cabeçalho IP Cabeçalho UDP Dados Cabeçalho IP Cabeçalho UDP Dados Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Multiplexação e demultiplexação – Multiplexar: dados que saem da Camada de Aplicação e passam para a Camada de Transporte • Acrescentar informações – Demultiplexar: dados que saem da Camada de Transporte e passam para a Camada de Aplicação • Retirar informações – Baseados nas portas definidas na comunicação • No destino, UDP aceita as mensagens da Camada de Rede e desmultiplexa com base na porta destino do UDP Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Multiplexação e demultiplexação – UDP recebe um datagrama – Verifica se a porta de destino combina com alguma das que podem ser utilizadas – Caso não haja, envia uma mensagem de erro ICMP de porta inalcançável (port unreacheable), descartando o datagrama – Se encontra a combinação informada, enfileira na porta da aplicação • Fila cheia: mensagem descartada Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Multiplexação e demultiplexação Porta X Porta Y Porta Z Porta W UDP: realiza a demultiplexação de acordo com a porta Camada de Rede Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • UDP não realiza diversas ações – – – – Controle de fluxo Controle de erros Retransmissão de mensagens incorretas Sequenciamento de mensagens • Fornece apenas a principal tarefa dos protocolos de transporte – Entrega dos dados na Camada de Aplicação Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Trata-se de um protocolo simples – Implementação – Utilização • Aplicações de tempo real (como Voz sobre IP (VoIP), por exemplo) necessitam desta simplicidade • Deve ser utilizado em aplicações que não requerem segurança nos dados – Velocidade e simplicidade Redes de Computadores I – Prof. Mateus Raeder UDP (User Datagram Protocol) • Desvantagens – Não confirma a entrega dos dados – Não ordena os dados enviados – Os erros devem ser tratados na aplicação • Vantagens – Facilidade de implementação e utilização – Menos overhead na rede • Sem mensagens de controle Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) • O protocolo TCP implementa a funcionalidade não implementada no UDP – Orientação a conexão – Trata-se, então, de uma implementação mais complexa • O protocolo TCP tem o objetivo de sanar os erros de envio das camadas mais baixas – Todas entregando pacotes de forma não confiável Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) • As aplicações inúmeras vezes necessitam enviar grandes volumes de dados entre si • Sistemas não confiáveis e não orientados a conexão – Trazem tarefas nem sempre desejáveis aos programadores, pois eles são os que precisam controlar os erros que vão ocorrer • O TCP realiza estes controles para os aplicativos Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) • Quatro características – Orientação de streams • Dados são considerados streams (fluxo) de bits • O receptor recebe a mesma sequência de bytes que o remetente enviou – Circuito virtual: • Como uma chamada telefônica (chamada/aceita) • A comunicação deve ser autorizada • Durante transferência, protocolos continuam se comunicando para eventuais erros Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) • Quatro características – Transmissão bufferizada: • Programas enviam streams de dados através do circuito virtual • Repassam diversos octetos para o protocolo • Cada aplicativo pode enviar a quantidade de dados que achar necessário • O protocolo, então, entrega estes octetos na mesma ordem que recebeu • O protocolo pode, então, dividir o stream de dados em quantas partes ele desejar Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) • Quatro características – Transmissão bufferizada (cont.): • Quanto mais dados houver no datagrama, mais eficaz e com menos tráfego na rede será a comunicação • Se a aplicação gerar blocos muito extensos, o protocolo pode dividir em pequenas partes para transmissão – Conexão full duplex • Permitem transferência de dados nas duas direções – De A B e de B A Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) • O TCP garante os fluxos de uma máquina para a outra sem duplicação e sem perda de dados • Utiliza-se a técnica conhecida como Confirmação Positiva com Retransmissão – Positive Acknowledgement with Retransmition • Esta técnica requer que um destinatário envia uma mensagem de confirmação (ACK) Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) • O remetente mantém registro de cada pacote enviado – aguarda confirmação para enviar o próximo pacote • Quando envia um pacote, dispara um timer – Retransmite o pacote quando o timer expira sem um ACK retornado Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) • Envio sem problemas na transmissão Origem Envio do pacote 1 Destino Recebe pacote 1 Envio do ACK 1 Recebe ACK 1 Envio do pacote 2 Recebe pacote 2 Envio do ACK 2 Recebe ACK 2 Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) • Envio com problemas na transmissão Origem Destino Envio do pacote 1 Início timer Fim do timer Retransmite pacote 1 Recebe pacote 1 Envio do ACK 1 Recebe ACK 1 Redes de Computadores I – Prof. Mateus Raeder