A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte.

Apresentações semelhantes


Apresentação em tema: "URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte."— Transcrição da apresentação:

1 URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

2 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC O nível de transporte é o coração da pilha de protocolos. Sua tarefa é prover transporte confiável e eficiente de dados de uma máquina origem para uma máquina destino, independente da (ou das) rede física existente. O hardware e software no nível de transporte que desempenha essa função é chamado de entidade de transporte, podendo se localizar no núcleo do sistema operacional, em um processo separado ou mesmo na placa de interface de rede. Entidade de transporte

3 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC O nível de transporte, de modo semelhante ao nível de rede, oferece o serviço com conexão e sem conexão. Por esse fato, levanta-se a questão: Por que existir o nível de transporte? A resposta é sutil, mas crucial. O nível de rede é parte da subrede de comunicação e é implementado (pelo menos em MANs e WANs) pelas operadoras de telecomunicação. O que ocorre se o nível de rede oferece serviço orientado à conexão, mas não confiável? Se ele perde pacotes com freqüência? Se os roteadores envolvidos entram em pane com alguma freqüência? Problemas ocorrem na subrede de comunicação, sobre a qual os usuários finais não têm controle total. A solução do problema é colocar mais um nível sobre o nível de rede (o nível de transporte!) para melhorar a qualidade do serviço (Quality of Service – QoS). QoS de transporte pode permitir ao usuário especificar valores desejáveis, aceitáveis e mínimos para vários parâmetros na hora da abertura de uma conexão (quando se usa o serviço com conexão).

4 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Os principais parâmetros de QoS são descritos na tabela a seguir.

5 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Primitivas de Transporte Fundamentalmente, o nível de transporte (nas várias arquiteturasde rede) oferece as primitivas mostradas na tabela a seguir.

6 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Para se ter uma idéia de funcionamento, considere uma aplicação de rede com um programa servidor e vários programas clientes (p.ex., o IRC). As primitivas usadas por cada elemento envolvido na comunicação seriam: De início, o servidor executa um LISTEN (chamando uma rotina de biblioteca que faz uma chamada ao sistema operacional que bloqueia o programa servidor) para ficar aguardando solicitações de abertura de conexão feitas por clientes; Um cliente, desejando "falar" com o servidor, executa um CONNECT, sendo bloqueado até obter uma resposta do servidor (ou até esgotar um temporizador); O servidor recebe o pedido de abertura de conexão, responde confirmando, e libera o fluxo de comunicação com o cliente; Cliente e servidor trocam dados entre si com chamadas a SEND e RECEIVE; O cliente encerra a conexão com DISCONNECT; O servidor aceita a desconexão e continua a aguardar pedidos de abertura de conexão.

7 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Elementos de Protocolos de Transporte A camada de transporte guarda algumas semelhanças com a camada de enlace de dados: Controle de erro; Controle de sequenciamento; Controle de fluxo. Apresenta, porém, algumas diferenças importantes: Endereçamento de aplicação (processos) no emissor e receptor; Abertura/ Encerramento de conexão mais elaborado com tratamento de dados "em trânsito" na subrede; Armazenamento temporário de segmentos no emissor e receptor; Grande quantidade de conexões simultâneas, necessitando de maior controle de fluxo.

8 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Estabelecimento de Conexão Teoricamente simples: Origem envia solicitação de abertura de conexão (CONNECT REQUEST - CR) Destino recebe CR e envia resposta favorável (ACCEPT ACK) ou desfavorável (REJECT) Origem inicia transmissão se recebe ACCEPT ACK O problema é que solicitações ou respostas podem se perder (ou serem duplicadas) no caminho: Pode haver duplicação de solicitação quando uma confirmação demora muito a chegar A subrede pode reter um pacote por um tempo relativamente longo, gerando instabilidades Como resolver o problema? Usando um mecanismo Conhecido por Threeway Handshake (ou Aperto de mão em três vias)

9 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Theeway Handshake em situação normal Emissor envia CONNECT com número de sequência X Receptor envia ACK com sequência Y, e reconhecendo sequência X Emissor recebe ACK e inicia envio de dados (DATA) com sequência X, reconhecendo sequência Y Threeway handshake

10 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Threeway Handshake com duplicação de CR Receptor recebe CR duplicado, ignora a segunda ocorrência porque a conexão já foi aberta e reenvia ACK Emissor recebe ACK, ignora porque a conexão já foi aberta e envia REJECT Receptor recebe REJECT e fica sabendo que a conexão também já está aberta no emissor (cai na real, descobrindo que foi enganado por um CR duplo) Threeway Handshake com duplicação de CR

11 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Encerramento de Conexão Não é tão simples quanto possa parecer. Pode ser: Assimétrico, quando emissor ou receptor fecha a conexão e a comunicação física é interrompida (como no sistema telefônico) Simétrico, quando a comunicação é vista como duas conexões unidirecionais e o emissor e o receptor devem ser liberados separadamente. Problema dos dois exércitos Como sincronizar os ataques da tropa A com a tropa B, para vencer a tropa C, sendo que A e B juntas vencem a tropa C, mas A e B isoladas perdem da tropa C?

12 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Se cada tropa esperar a confirmação do parceiro, nunca se fará nada! Com rede é bem mais fácil, usando-se técnicas de retransmissão temporizada e desconexão temporizada, como mostrado nas figuras a seguir. Problema dos dois exércitos

13 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Encerramento normal de conexão

14 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Encerramento de conexão com perda de ACK

15 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Encerramento de conexão com perda de resposta

16 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Encerramento de conexão com perda de resposta e DR seguintes

17 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Controle de Fluxo e Armazenamento Temporário Controle de fluxo é facilmente resolvido com o uso de protocolos de janela deslizante (slide window), como visto na camada de enlace. Quando um emissor não pode (ou não quer) receber mais segmentos do receptor, envia para o mesmo uma mensagem definindo tamanho 0 (zero) para a janela deslizante de recepção Posteriormente, envia mensagem de controle indicando um novo N para o reinicio da transmissão emissor receptor

18 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Armazenamento temporário é necessário porque durante a transmissão de uma mensagem dividida em vários segmentos, a camada de transporte guarda os segmentos enviados e ainda não confirmados (ACK) pelo receptor, para poder fazer eventuais retransmissões. É preciso haver área de armazenamento temporários para diversos segmentos de diversas conexões em andamento. A gerência dessa área de armazenamento pode ser feita de várias formas, sendo bastante comum a utilização de listas encadeadas com elementos de tamanho fixo ou variável e listas circulares Esse armazenamento temporário é necessário para o emissor e para o receptor (que deve armazenar segmentos até poder recompor a mensagem original e entrega-lá para as camadas superiores).

19 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Gerência de armazenamento temporário

20 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC A necessidade por um serviço de transporte confiável Aplicações em qualquer sistema de computação assumem que a transferência de dados é confiável, ou seja, o sistema garante que os dados não serão: Aplicações em qualquer sistema de computação assumem que a transferência de dados é confiável, ou seja, o sistema garante que os dados não serão: perdidos, perdidos, duplicados, e duplicados, e entregues fora de ordem entregues fora de ordem Uma internet deve prover um serviço idêntico a um sistema convencional Uma internet deve prover um serviço idêntico a um sistema convencional

21 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Protocolo TCP Principal protocolo de transporte da arquitetura TCP/IP Principal protocolo de transporte da arquitetura TCP/IP Existem outros como o UDP, RTP e RTCP Existem outros como o UDP, RTP e RTCP

22 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Protocolo TCP Provê um serviço (missão) impossível? Provê um serviço (missão) impossível? Usa um serviço datagrama não confiável para prover um serviço de entrega de dados confiável para as aplicações Usa um serviço datagrama não confiável para prover um serviço de entrega de dados confiável para as aplicações Deve ser capaz de compensar perdas e atrasos na sub-rede de comunicação de tal forma a prover o transporte de dados fim-a-fim de forma eficiente Deve ser capaz de compensar perdas e atrasos na sub-rede de comunicação de tal forma a prover o transporte de dados fim-a-fim de forma eficiente Deve ser capaz de executar essas tarefas sem sobrecarregar a sub-rede de comunicação e os roteadores Deve ser capaz de executar essas tarefas sem sobrecarregar a sub-rede de comunicação e os roteadores

23 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Protocolo TCP De todos os protocolos de transporte propostos talvez o TCP seja o protocolo que executa essas funções da melhor forma possível De todos os protocolos de transporte propostos talvez o TCP seja o protocolo que executa essas funções da melhor forma possível Certamente existem outras propostas melhores quando outros ambientes são considerados, como redes de alta velocidade Certamente existem outras propostas melhores quando outros ambientes são considerados, como redes de alta velocidade Atualmente, a maior parte das aplicações na Internet são baseadas no TCP Atualmente, a maior parte das aplicações na Internet são baseadas no TCP

24 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Serviços que o TCP provê para as aplicações Conexão Conexão Serviço baseado em três fases: Serviço baseado em três fases: Estabelecimento da conexão Estabelecimento da conexão Transferência de dados Transferência de dados Término da conexão Término da conexão

25 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Serviços que o TCP provê para as aplicações Comunicação ponto-a-ponto Comunicação ponto-a-ponto Cada conexão TCP tem dois endpoints Cada conexão TCP tem dois endpoints Confiabilidade Confiabilidade TCP garante que os dados serão entregues da forma que foram enviados TCP garante que os dados serão entregues da forma que foram enviados

26 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Serviços que o TCP provê para as aplicações Comunicação full-duplex Comunicação full-duplex TCP permite que dados sejam enviados em qualquer instante e em qualquer direção TCP permite que dados sejam enviados em qualquer instante e em qualquer direção TCP pode armazenar dados de entrada e saída TCP pode armazenar dados de entrada e saída Libera a aplicação para continuar processando Libera a aplicação para continuar processando

27 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Serviços que o TCP provê para as aplicações Interface do serviço é uma seqüência de bytes Interface do serviço é uma seqüência de bytes TCP não identifica estruturas lógicas nos dados transmitidos TCP não identifica estruturas lógicas nos dados transmitidos Dados transmitidos são vistos como uma seqüência de bytes Dados transmitidos são vistos como uma seqüência de bytes

28 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Serviços que o TCP provê para as aplicações Inicialização confiável da conexão Inicialização confiável da conexão TCP requer que as aplicações reconheçam uma nova conexão toda vez que uma for criada TCP requer que as aplicações reconheçam uma nova conexão toda vez que uma for criada Pacotes de conexões anteriores não podem aparecer como válidos Pacotes de conexões anteriores não podem aparecer como válidos Término correto da conexão Término correto da conexão TCP garante a entrega de todos os dados antes de fechar uma conexão a pedido de uma aplicação TCP garante a entrega de todos os dados antes de fechar uma conexão a pedido de uma aplicação

29 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Serviço fim-a-afim e datagramas Protocolos de transporte são chamados de protocolos fim-a-fim Protocolos de transporte são chamados de protocolos fim-a-fim Provêem uma conexão entre duas aplicações em computadores distintos Provêem uma conexão entre duas aplicações em computadores distintos Conexões são virtuais Conexões são virtuais Implementadas de software já que o sub-sistema de comunicação não provê nenhuma facilidade Implementadas de software já que o sub-sistema de comunicação não provê nenhuma facilidade

30 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Serviço fim-a-afim e datagramas Mensagens TCP são encapsuladas em datagramas (pacotes) IPs Mensagens TCP são encapsuladas em datagramas (pacotes) IPs Pacotes são encapsulados em quadros Pacotes são encapsulados em quadros Quadros são transmitidos como uma seqüência de bits Quadros são transmitidos como uma seqüência de bits

31 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Serviço fim-a-afim e datagramas

32 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Dois cenários que afetam a confiabilidade Serviço não confiável do sub-sistema de comunicação Serviço não confiável do sub-sistema de comunicação No sub-sistema de comunicação, mensagens de uma conexão podem ser: No sub-sistema de comunicação, mensagens de uma conexão podem ser: Perdidas Perdidas Duplicadas Duplicadas Atrasadas Atrasadas Entregues fora de ordem e aparecerem em outra conexão Entregues fora de ordem e aparecerem em outra conexão

33 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Dois cenários que afetam a confiabilidade Conexões devem ser identificadas de forma única Conexões devem ser identificadas de forma única Solução: um número de 32 bits é gerado por cada entidade toda vez que uma conexão é criada Solução: um número de 32 bits é gerado por cada entidade toda vez que uma conexão é criada

34 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Dois cenários que afetam a confiabilidade Reinicialização de um computador após uma conexão ter sido estabelecida Reinicialização de um computador após uma conexão ter sido estabelecida Computador que não reinicializou não sabe do problema e considera a conexão válida Computador que não reinicializou não sabe do problema e considera a conexão válida Computador que reinicializou não sabe da existência da conexão e deve rejeitar esses pacotes Computador que reinicializou não sabe da existência da conexão e deve rejeitar esses pacotes Problema que não é simples de ser resolvido Problema que não é simples de ser resolvido

35 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Como alcançar a confiabilidade? Através de uma série de técnicas que tratam partes do problema Através de uma série de técnicas que tratam partes do problema Princípio básico para cada mensagem: Princípio básico para cada mensagem: Transmissão Transmissão Temporização ou confirmação (positiva ou negativa) Temporização ou confirmação (positiva ou negativa) Retransmissão, se for o caso Retransmissão, se for o caso Repetição do processo um número finito de vezes Repetição do processo um número finito de vezes

36 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Como alcançar a confiabilidade?

37 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Como alcançar a confiabilidade? Problema decorrente: Problema decorrente: Como configurar temporizadores para comunicações em LANs e WANs? Como configurar temporizadores para comunicações em LANs e WANs? LANs: deve-se esperar pouco LANs: deve-se esperar pouco WANs: deve-se esperar mais WANs: deve-se esperar mais

38 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Como alcançar a confiabilidade? Problema relacionado com a eficiência: Problema relacionado com a eficiência: Rajadas de datagramas podem causar congestionamento Rajadas de datagramas podem causar congestionamento Tempo para enviar, receber e confirmar uma mensagem pode variar uma ordem de magnitude em poucos ms Tempo para enviar, receber e confirmar uma mensagem pode variar uma ordem de magnitude em poucos ms TCP deve adaptar-se a diferentes condições de tráfego que podem causar diferentes atrasos num pequeno intervalo de tempo TCP deve adaptar-se a diferentes condições de tráfego que podem causar diferentes atrasos num pequeno intervalo de tempo

39 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Retransmissão adaptativa Protocolos de transporte anteriores ao TCP usavam um valor fixo de espera de confirmação para efeito de retransmissão Protocolos de transporte anteriores ao TCP usavam um valor fixo de espera de confirmação para efeito de retransmissão

40 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Retransmissão adaptativa No TCP esse tempo é variável No TCP esse tempo é variável TCP monitora o atraso em cada conexão e modifica o temporizador de retransmissão para acompanhar mudanças TCP monitora o atraso em cada conexão e modifica o temporizador de retransmissão para acompanhar mudanças Mudança é feita em função de uma análise estatística das mensagens transmitidas Mudança é feita em função de uma análise estatística das mensagens transmitidas Na prática, retransmissão adaptativa funciona bem Na prática, retransmissão adaptativa funciona bem

41 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Retransmissão adaptativa

42 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Controle de Fluxo Baseado em um mecanismo de janela Baseado em um mecanismo de janela No momento do estabelecimento da conexão, um buffer de recepção é alocado e seu tamanho é informado para a entidade par No momento do estabelecimento da conexão, um buffer de recepção é alocado e seu tamanho é informado para a entidade par

43 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Controle de Fluxo Em toda confirmação é enviado o espaço disponível nesse buffer Em toda confirmação é enviado o espaço disponível nesse buffer Esse espaço é chamado de janela Esse espaço é chamado de janela A notificação que contém o valor desse espaço é chamado de anúncio da janela (window advertisement) A notificação que contém o valor desse espaço é chamado de anúncio da janela (window advertisement)

44 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Controle de Fluxo Tamanho máximo do segmento para o exemplo: 1000 bytes

45 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Gerenciamento de conexões É feito usando 3-way handshake (três mensagens são trocadas) É feito usando 3-way handshake (três mensagens são trocadas) TCP usa os termos: TCP usa os termos: Segmento de sinccronização (SYN segment) para descrever mensagens durante a conexão Segmento de sinccronização (SYN segment) para descrever mensagens durante a conexão Segmento de término (FIN finish segment) para descrever mensagens durante a desconexão Segmento de término (FIN finish segment) para descrever mensagens durante a desconexão

46 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC 3-way handshake

47 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Controle de congestionamento Congestionamento da rede pode ser piorado se a camada de transporte retransmite pacotes que não foram perdidos Congestionamento da rede pode ser piorado se a camada de transporte retransmite pacotes que não foram perdidos Esse problema pode causar até um colapso da rede Esse problema pode causar até um colapso da rede

48 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Controle de congestionamento TCP usa a quantidade de pacotes perdidos como uma medida de congestionamento TCP usa a quantidade de pacotes perdidos como uma medida de congestionamento Reduz a taxa de retransmissão a medida que esse valor aumenta Reduz a taxa de retransmissão a medida que esse valor aumenta A transmissão de mensagens é feita de forma exponencial até atingir um dado valor, quando passa a aumentar mais lentamente A transmissão de mensagens é feita de forma exponencial até atingir um dado valor, quando passa a aumentar mais lentamente

49 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Controle de congestionamento

50 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Formato do segmento TCP TCP usa o termo segmento para fazer referência a uma mensagem TCP usa o termo segmento para fazer referência a uma mensagem

51 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC Portas em conexões Números de portas abaixo de 256 são chamadas de portas bem-conhecidas Números de portas abaixo de 256 são chamadas de portas bem-conhecidas 21: ftp 21: ftp 23: telnet 23: telnet Outros: RFC 1700 Outros: RFC 1700 Conexão: Conexão: Número IP + Número da porta Número IP + Número da porta

52 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC UDP UDP: User Data Protocol UDP: User Data Protocol Protocolo de transporte não confiável (não há estabelecimento de conexão) Protocolo de transporte não confiável (não há estabelecimento de conexão)

53 Redes de Computadores – Camada de Transporte URI - Santo Ângelo - DECC UDP Onde é usado: Onde é usado: Aplicações cliente-servidor onde existe apenas uma requisição e uma resposta Aplicações cliente-servidor onde existe apenas uma requisição e uma resposta O custo para estabelecer uma conexão é alto quando comparado com a transferência de dados O custo para estabelecer uma conexão é alto quando comparado com a transferência de dados


Carregar ppt "URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte."

Apresentações semelhantes


Anúncios Google