redes de computadores camada de transporte professor: m.sc. carlos oberdan rolim

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

Upload: internet

Post on 22-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

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

REDES DE COMPUTADORES

Camada de Transporte

Professor: M.Sc. Carlos Oberdan Rolim

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

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

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

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

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

Primitivas de Transporte• Fundamentalmente, o nível de transporte (nas várias

arquiteturasde rede) oferece as primitivas mostradas na tabela a seguir.

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

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

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

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.

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

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.

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

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

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

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

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

Broadcast, multicast, unicast

• Ao endereçar uma comunicação cliente tem opção de fazer broadcast, multicast, unicast

Unicast Broadcast Multicast

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

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)

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

Theeway Handshake

URI - Santo Ângelo - DECC

Cliente Servidor

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

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

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?

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

• 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

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

Encerramento normal de conexão

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

Encerramento de conexão com perda de ACK

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

Encerramento de conexão com perda de resposta

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

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

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

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

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

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

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

Gerência de armazenamento temporário

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

A necessidade por um serviço de transporte confiávelA 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

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

Protocolo TCPProtocolo TCP

• Principal protocolo de transporte da arquitetura TCP/IP

• Existem outros como o UDP, RTP e RTCP

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

Protocolo TCPProtocolo 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

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

Protocolo TCPProtocolo 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

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

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

mensagem

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

Serviços que o TCP provê para as aplicaçõesServiç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

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

Serviços que o TCP provê para as aplicaçõesServiç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

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

Serviços que o TCP provê para as aplicaçõesServiç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

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

Serviços que o TCP provê para as aplicaçõesServiç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

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

Serviços que o TCP provê para as aplicaçõesServiç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

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

Serviço fim-a-afim e datagramasServiç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

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

Serviço fim-a-afim e datagramasServiç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

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

Serviço fim-a-afim e datagramasServiço fim-a-afim e datagramas

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

Dois cenários que afetam a confiabilidadeDois 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

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

Dois cenários que afetam a confiabilidadeDois 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

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

Dois cenários que afetam a confiabilidadeDois 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

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

Como alcançar a confiabilidade?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

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

Como alcançar a confiabilidade?Como alcançar a confiabilidade?

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

Como alcançar a confiabilidade?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

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

Como alcançar a confiabilidade?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

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

Retransmissão adaptativaRetransmissão adaptativa

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

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

Retransmissão adaptativaRetransmissã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

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

Retransmissão adaptativaRetransmissão adaptativa

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

Controle de FluxoControle 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

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

Controle de FluxoControle 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)

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

Controle de Controle de FluxoFluxo

Tamanho máximo do segmento para o exemplo: 1000 bytes

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

Gerenciamento de conexõesGerenciamento 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

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

Controle de congestionamentoControle 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

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

Controle de congestionamentoControle 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

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

Controle de congestionamentoControle de congestionamento

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

UDPUDP• UDP: User Data Protocol

– Protocolo de transporte não confiável (não há estabelecimento de conexão)

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

UDPUDP

• 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

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

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.