350 likes | 462 Views
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
E N D
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 Destino Origem 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) 31 • Datagrama UDP possui 2 partes • Cabeçalho • Dados 0 16 Porta Origem Porta Destino Tamanho Checksum Dados Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol) 31 • Portas Origem e Destino • Número de 16 bts, utilizado para entregar os datagramas entre os programas 0 16 Porta Origem Porta Destino Tamanho Checksum Dados Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol) 31 • Tamanho • Tamanho total incluindo cabeçalho e dados • Contagem de octetos (valor mínimo é 8) 0 16 Porta Origem Porta Destino Tamanho Checksum Dados Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol) 31 • Checksum • Soma de verificação • Verifica se o Datagrama UDP está correto 0 16 Porta Origem Porta Destino Tamanho Checksum Dados 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 31 0 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 31 0 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) 31 • Dados • Dados do usuário • O que será entregue para a Camada de Aplicação 0 16 Porta Origem Porta Destino Tamanho Checksum Dados Redes de Computadores I – Prof. Mateus Raeder
UDP (User Datagram Protocol) • Encapsulamento Cabeçalho UDP Dados Cabeçalho IP Cabeçalho UDP Dados Cabeçalho Ethernet Cabeçalho UDP Cabeçalho IP 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 Destino Envio do pacote 1 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 1Iní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