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

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

REDES DE COMPUTADORES Camada de Transporte Professor: M.Sc. Carlos Oberdan Rolim.

Apresentações semelhantes


Apresentação em tema: "REDES DE COMPUTADORES Camada de Transporte Professor: M.Sc. Carlos Oberdan Rolim."— Transcrição da apresentação:

1 REDES DE COMPUTADORES Camada de Transporte Professor: M.Sc. Carlos Oberdan Rolim

2 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. Torna a complexidade dos níveis mais baixos transparente para os processos – Comunicação fim-a-fim 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.

3 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 Primitivas de Transporte Fundamentalmente, o nível de transporte (nas várias arquiteturasde rede) oferece as primitivas mostradas na tabela a seguir.

5 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.

6 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.

7 Endereçamento de aplicação ao nível de transporte Como um programa cliente que deseja abrir uma conexão com um programa servidor identifica de forma única o servidor? Como o próprio cliente se identifica para o servidor? Normalmente são usados endereços de transporte, a partir dos quais os servidores ficam aguardando ("escutando") pedidos de abertura de conexão. Esses endereços são chamados de portas As portas são números inteiros (padronizados em uma dada arquitetura) que identificam programas servidores e programas clientes em máquinas da rede.

8 Endereçamento de aplicação ao nível de transporte De modo menos informal um endereço é definido como uma dupla composta por um endereço do nível de rede (endereço IP por exemplo) e uma porta 10.10.10.200:45000 10.10.10.1 : 80  Comunicação envolve porta+endereço local e porta+endereço remoto Endereço local IP : Porta Endereço remoto IP : Porta

9 Endereçamento de aplicação ao nível de transporte Números de portas abaixo de 1024 são chamadas de portas “bem-conhecidas”  precisam de permissão de super usuário – 21: ftp – 23: telnet – 25: smtp – 80: http – 443 : https – Outros: RFC 1700 Acima de 1024 qualquer processo pode abrir uma porta

10 Broadcast, multicast, unicast Ao endereçar uma comunicação cliente tem opção de fazer broadcast, multicast, unicast Unicast Broadcast Multicast

11 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)

12 Theeway Handshake URI - Santo Ângelo - DECC ClienteServidor SYN + ACK 101, 200 Envia SYN (Seq x, ACK = 0) Envia SYN + ACK (ACK = x + 1, Seq y) SYN, 100 Envia ACK (ACK = y + 1, Seq x + 1) 1.Cliente: Servidor, estou enviando a mensagem 100 (Número de sequência do cliente). Dá pra sincronizar (SYN)? 2. Servidor: Claro, sincroniza a mensagem 200 (Número de sequência do servidor) que estou enviando (SYN). Prossiga com a mensagem 101 (ACK). 3. Cliente: Ok, estou enviando a mensagem 101. Prossiga com a mensagem 201 (ACK). ACK 101, 201 --- Conexão estabelecida ---

13 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?

14 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

15 Encerramento normal de conexão

16 Encerramento de conexão com perda de ACK

17 Encerramento de conexão com perda de resposta

18 Encerramento de conexão com perda de resposta e DR seguintes

19 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

20 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).

21 Gerência de armazenamento temporário

22 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

23 Protocolo TCP Principal protocolo de transporte da arquitetura TCP/IP Existem outros como o UDP, RTP e RTCP

24 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

25 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

26 Formato do segmento TCP – TCP usa o termo segmento para fazer referência a uma mensagem

27 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

28 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

29 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

30 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

31 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

32 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

33 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 sequência de bits

34 Serviço fim-a-afim e datagramas

35 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

36 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

37 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

38 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

39 Como alcançar a confiabilidade?

40 Problema decorrente: – Como configurar temporizadores para comunicações em LANs e WANs? LANs: deve-se esperar pouco WANs: deve-se esperar mais

41 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

42 Retransmissão adaptativa Protocolos de transporte anteriores ao TCP usavam um valor fixo de espera de confirmação para efeito de retransmissão

43 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

44 Retransmissão adaptativa

45 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

46 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)

47 Controle de Fluxo Tamanho máximo do segmento para o exemplo: 1000 bytes

48 Gerenciamento de conexões É feito usando 3-way handshake (três mensagens são trocadas) TCP usa os campos: – Campo de sincronização (SYN) – Campo de término (FIN) – Campo de reset ( RST) – Campo de reconhecimento (ACK)  todos pacotes após estabelecimento de conexão precisam estar com ele setado – Combinação entre eles: ACK/FIN

49 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

50 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

51 Controle de congestionamento

52 UDP UDP: User Data Protocol – Protocolo de transporte não confiável (não há estabelecimento de conexão)

53 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

54 Políticas de prevenção de congestionamento A tabela a seguir resume as políticas adotadas em diversas camadas de uma pilha de protocolos que afetam o congestionamento.


Carregar ppt "REDES DE COMPUTADORES Camada de Transporte Professor: M.Sc. Carlos Oberdan Rolim."

Apresentações semelhantes


Anúncios Google