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

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

Embed Size (px)

Citation preview

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

URI - Santo Ângelo - DECC

REDES DE COMPUTADORES

Camada de Transporte

Page 2: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte 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

Page 3: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada 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).

Page 4: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

Os principais parâmetros de QoS são descritos na tabela a seguir.

Page 5: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

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

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

Page 6: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte 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 7: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

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 8: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

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. São os chamados Pontos de Acesso do Serviço de Transporte (Transport Service Access Point – TSAP), que são análogos aos Pontos de Acesso do Serviço de Rede (Network Service Access Point – NSAP).

Em muitas arquiteturas de rede, endereços de transporte são números inteiros (padronizados em uma dada arquitetura) que identificam programas servidores e programas clientes em máquinas da rede.

A figura a seguir ilustra a utilização desses endereços de transporte.

Page 9: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

Endereçamento de programas (TSAPs) e máquinas (NSAPs)

Page 10: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

Estabelecimento de Conexão

Teoricamente simples: Origem envia solicitação (TPDU) 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 11: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

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

Page 12: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

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

Page 13: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

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: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

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: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

Encerramento normal de conexão

Page 16: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

Encerramento de conexão com perda de ACK

Page 17: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

Encerramento de conexão com perda de resposta

Page 18: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

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

Page 19: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

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

Basta ter bits para window size no TPDU

Page 20: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

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: URI - Santo Ângelo - DECC REDES DE COMPUTADORES Camada de Transporte

URI - Santo Ângelo - DECC

Redes de Computadores – Camada de Transporte

Gerência de armazenamento temporário