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

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

URI - Santo Ângelo - DECC

Apresentações semelhantes


Apresentação em tema: "URI - Santo Ângelo - DECC"— Transcrição da apresentação:

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

2 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 URI - Santo Ângelo - DECC

3 Por que existir o nível de transporte?
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). URI - Santo Ângelo - DECC

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

5 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. URI - Santo Ângelo - DECC

6 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. URI - Santo Ângelo - DECC

7 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. URI - Santo Ângelo - DECC

8 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) URI - Santo Ângelo - DECC

9 URI - Santo Ângelo - DECC
Threeway handshake 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 URI - Santo Ângelo - DECC

10 URI - Santo Ângelo - DECC
Threeway Handshake com duplicação de CR 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) URI - Santo Ângelo - DECC

11 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? URI - Santo Ângelo - DECC

12 URI - Santo Ângelo - DECC
Problema dos dois exércitos 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. URI - Santo Ângelo - DECC

13 URI - Santo Ângelo - DECC
Encerramento normal de conexão URI - Santo Ângelo - DECC

14 URI - Santo Ângelo - DECC
Encerramento de conexão com perda de ACK URI - Santo Ângelo - DECC

15 URI - Santo Ângelo - DECC
Encerramento de conexão com perda de resposta URI - Santo Ângelo - DECC

16 URI - Santo Ângelo - DECC
Encerramento de conexão com perda de resposta e DR seguintes URI - Santo Ângelo - DECC

17 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 URI - Santo Ângelo - DECC

18 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). URI - Santo Ângelo - DECC

19 URI - Santo Ângelo - DECC
Gerência de armazenamento temporário URI - Santo Ângelo - DECC

20 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: perdidos, duplicados, e entregues fora de ordem Uma internet deve prover um serviço idêntico a um sistema convencional URI - Santo Ângelo - DECC

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

22 URI - Santo Ângelo - DECC
Protocolo TCP 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 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 URI - Santo Ângelo - DECC

23 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 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 URI - Santo Ângelo - DECC

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

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

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

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

28 URI - Santo Ângelo - DECC
Serviços que o TCP provê para as aplicações 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 Pacotes de conexões anteriores não podem aparecer como válidos 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 URI - Santo Ângelo - DECC

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

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

31 Serviço fim-a-afim e datagramas
URI - Santo Ângelo - DECC

32 Dois cenários que afetam a confiabilidade
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: Perdidas Duplicadas Atrasadas Entregues fora de ordem e aparecerem em outra conexão URI - Santo Ângelo - DECC

33 Dois cenários que afetam a confiabilidade
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 URI - Santo Ângelo - DECC

34 Dois cenários que afetam a confiabilidade
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 reinicializou não sabe da existência da conexão e deve rejeitar esses pacotes Problema que não é simples de ser resolvido URI - Santo Ângelo - DECC

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

36 Como alcançar a confiabilidade?
URI - Santo Ângelo - DECC

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

38 Como alcançar a confiabilidade? Problema relacionado com a eficiência:
Rajadas de datagramas podem causar congestionamento 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 URI - Santo Ângelo - DECC

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

40 Retransmissão adaptativa 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 Mudança é feita em função de uma análise estatística das mensagens transmitidas Na prática, retransmissão adaptativa funciona bem URI - Santo Ângelo - DECC

41 Retransmissão adaptativa
URI - Santo Ângelo - DECC

42 URI - Santo Ângelo - DECC
Controle de Fluxo 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 URI - Santo Ângelo - DECC

43 URI - Santo Ângelo - DECC
Controle de Fluxo Em toda confirmação é enviado o espaço disponível nesse buffer 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) URI - Santo Ângelo - DECC

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

45 Gerenciamento de conexões
É feito usando 3-way handshake (três mensagens são trocadas) TCP usa os termos: 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 URI - Santo Ângelo - DECC

46 URI - Santo Ângelo - DECC
3-way handshake URI - Santo Ângelo - DECC

47 Controle de congestionamento
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 URI - Santo Ângelo - DECC

48 Controle 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 A transmissão de mensagens é feita de forma exponencial até atingir um dado valor, quando passa a aumentar mais lentamente URI - Santo Ângelo - DECC

49 Controle de congestionamento
URI - Santo Ângelo - DECC

50 Formato do segmento TCP
TCP usa o termo segmento para fazer referência a uma mensagem URI - Santo Ângelo - DECC

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

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

53 URI - Santo Ângelo - DECC
UDP Onde é usado: 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 URI - Santo Ângelo - DECC


Carregar ppt "URI - Santo Ângelo - DECC"

Apresentações semelhantes


Anúncios Google