Transporte OSI Liane Tarouco TSAPs • As operações entre entidades de camadas adjacentes dentro de um mesmo sistema aberto ocorrem nos pontos de acesso de serviço (SAP - Service Acess Point), que estão localizados na interface entre duas camadas. • No caso da camada transporte esses pontos são denominados TSAP (Transport Service Acess Point). Primitivas de serviço • Estas primitivas estão definidas em 4 tipos: – request (pedido): iniciada por uma camada (N+1) para pedir algum serviço à camada (N); – indication (indicação): emitida pela camada (N) à camada (N+1) para indicar a ocorrência de algum evento; – response (resposta): enviada à camada (N) - pela camada (N+1), em resposta à indicação recebida da camada – (N); - confirmation (confirmação): emitida pela camada (N) para indicar ao originador do pedido do serviço que o serviço foi completado. Serviços confirmado e não confirmados • Um serviço que utiliza as quatro primitivas chama-se serviço confirmado. • Um serviço não-confirmado utiliza-se apenas das duas primeiras: pedido e indicação. TSDUs e TPDUs TSDU • O serviço de transporte recebe do nível superior a ele os dados a serem enviados, na forma de unidade de dados de serviço de transporte - TSDU (Transport Service Data Unit). • Estas TSDUs são passadas ao serviço de transporte como parâmetros de primitivas de serviço usadas para transferir dados. TPDU • As entidades pares (entidades de mesma camada residentes em sistemas abertos diferentes) trocam elementos de protocolo denominados unidades de dados do protocolo de transporte - TPDU (Transport Protocol Date Unit). Conexão de transporte • Uma conexão de transporte é definida como uma associação estabelecida entre entidades de sessão com o objetivo de transferir dados. • Cada conexão de transporte é associada a uma conexão de rede - no caso das duas camadas estarem operando em modo orientado à conexão. • Nessa situação, se a conexão de rede falhar, a conexão de transporte pode ser associada à outra conexão de rede; e as TPDU perdidas podem ser retransmitidas. Tal procedimento é conhecido como reassociação após falha. Segmentação e remontagem • Normalmente o tamanho de uma TSDU não é fixo, podendo exceder o tamanho que a TPDU pode transportar. • Quando isso acorre, o protocolo de transporte segmenta a TSDU e a transporta em várias TPDU, remontando-a novamente no destino. Concatenação e separação • Para minimizar as interações entre camadas, um usuário da camada de transporte pode entregar de uma só vez à camada de transporte, várias TSDUs que serão transportadas em uma única TPDU. • Este procedimento é chamado de concatenação. • Na recepção, o usuário da camada de transporte deve ser capaz de identificar e separar as diversas TSDUs entregues em uma única interação por essa. • Este procedimento é chamado de separação. Multiplexação • Nem sempre o mapeamento das conexões é de um-para-um, podendo ocorrer no transmissor uma multiplexação de mais de uma conexão de transporte em uma conexão de rede. • O inverso ocorre no receptor, a demultiplexação da conexão de rede nas várias conexões de transporte. Splitting e recombinação • Além disso, pode acontecer de termos uma conexão de transporte associada a mais de uma conexão de rede. • Este processo é denominado, no transmissor, de splitting. No receptor, acontece o processo inverso, chamado de recombinação. Numeração • A camada de transporte transmissora faz a numeração das TPDU enviadas, para que a camada de transporte receptora possa fazer a resseqüênciação das mesmas, garantindo que o receptor receba as TPDU na mesma ordem que o transmissor as enviou. • Existem dois tipos de numerações – normal – extendida Ressincronização • A numeração extendida é utilizada em redes de alto throughput, exigindo poucos reconhecimentos de recebimentos de dados • Até que tal reconhecimento chegue, ocorre a retenção das TPDU correspondentes pela a entidade de transporte transmissora, permitindo assim uma retransmissão se necessário. • A retransmissão feita pela camada de transporte por ocorrência de erros na camada de rede é conhecida como ressincronização da conexão de transporte. Controle de erros e de fluxo • A camada de transporte pode realizar um controle de erros através de uma checksum inserida como um parâmetro das TPDU. • Ela também realiza um controle de fluxo denominado janela deslizante com alocação de crédito. Dados expressos • Levando em consideração que estes artifícios podem provocar um retardo no fluxo de dados para transmitir dados com urgência, foi definido prioridades para os chamados dados expressos sobre os dados normais. Referências congeladas • A camada de transporte provê um mecanismo de prevenção a erros após a liberação da conexão. • O mecanismo implica em não permitir que sejam reutilizadas referências de transporte durante um período de tempo grande o bastante para que não apareçam mais TPDU com tais referências circulando pela rede. • Tais referências são ditas referências congeladas. Liberação da conexão • Terminada a transmissão de dados, a conexão é liberada normalmente. • Quando a conexão é liberada por ocasião de uma reinicialização ou por falha da conexão de rede, diz-se que houve uma liberação com erro. Protocolos de transporte • Orientado a conexão – classes de serviço • Não orientado a conexão Protocolo de transporte orientado a conexão • • • • • • mapeamento de endereços de transporte em endereços de rede estabelecimento de conexão; multiplexação de conexões de transporte em conexões de rede; segmentação e concatenação de unidades de dados; recuperação de erros fim-a-fim; controle de seqüência fim-a-fim sobre cada conexão de transporte; • controle de fluxo fim-a-fim sobre cada conexão; • monitoração da qualidade de serviço prestada; • transferência de dados expressos. Tipos de serviços prestados pela camada de rede • TIPO A: serviço de rede orientado à conexão; taxa de erro residual e de erros sinalizados aceitável. Detecta perda, duplicação, corrupcção e seqüência, não ocorrendo quase perda de dados. • TIPO B: serviço de rede orientado à conexão. Oferece uma taxa de erro residual aceitável; porém, uma taxa de erros sinalizados inaceitável. • TIPO C: serviço de rede orientado ou não à conexão. A taxa de erro residual é inaceitável e não são detectados erros de perda, duplicação, corrupção e seqüência. Classes de serviço • • • • Classe 0: classe simples Classe 1: classe com recuperação básica de erros Classe 2: classe com multiplexação Classe 3: classe com recuperação de erros e multiplexação • Classe 4: classe com detecção e recuperação de erros Classe 0: Simples • Compatível com a Recomendação CCITT T.70 para terminais teletext. • Serviço de rede prestado é do tipo A, totalmente confiável. • O mapeamento entre as conexões de transporte e de rede é de uma-para-uma, tornando desnecessária a implementação de mecanismos de controle de seqüência, de fluxo e de erro - tratados na camada de rede. • Proporciona apenas as funções necessárias para estabelecimento de conexão com negociação, transferência de dados com segmentação e detecção de erros de protocolo. Classe 0 • O estabelecimento da conexão utiliza um mecanismo chamado two-way handshake. Este mecanismo basea-se na troca de duas (2) mensagens - pedido de conexão e confirmação do pedido. • Não é permitida a transferência de dados durante o estabelecimento da conexão. • Nas TPDU CR e CC, somente são permitidos os parâmetros de identificação do ponto de acesso e tamanho máximo da TPDU. • O tamanho padrão dos dados é de 128 octetos, podendo ser negociados valores de 256, 512, 1024 e 2048 octetos. • Na classe 0, a entidade de transporte libera a conexão de transporte solicitando a liberação da conexão de rede. Classe 1: Recuperação Básica de Erro • Serviço de rede tipo B • Recuperar-se de erros sinalizados pelo serviço de rede (desconexão da rede ou reset) • Conexão utiliza-se do mecanismo two-way handshake • Pode haver troca de dados na fase de conexão Classe 1 • Cada TPDU de dados transmitida é seqüencialmente numerada, e a entidade emissora mantém uma cópia delas até que ela receba uma mensagem da entidade receptora confirmando que as mesmas chegaram perfeitamente. • Facilidade de segmentação de TSDU • Concatenar de TPDU em uma única NSDU Classe 2: Classe com Multiplexação • Multiplexação de várias conexões de transporte numa conexão de rede • Cada TPDU possui uma referência de destino que identifica cada conexão de transporte. • Ela foi projetada para utilizar serviço de rede tipo A, não utilizando de nenhum mecanismo para detecção e recuperação de erros. • Se a conexão de rede é desconectada ou ressetada, a conexão de transporte é descontinuada. Classe 2 • Estabelecimento da conexão com two-way handshake • Possibilidade de haver um controle de fluxo explícito • Mecanismo de crédito permitindo ao receptor informar ao emissor a exata quantidade de dados que deseja receber Classe 2 • A entidade de transporte que recebe um ACK (confirmação de TPDU) considera o campo YRTU-NR (da TPDU-ACK) como sendo o limiar inferior da janela e a soma deste valor mais o valor do campo CDT, como o limiar superior da janela. • AS TPDU são numeradas seqüencialmente para cada sentido da transmissão. Classe 2 • Quando existe alguma mensagem de urgência, ela pode ser enviada como um dado expresso, tendo prioridade sobre as outras. • Cada mensagem de dado expresso deve ser confirmada antes da transmissão de outra TPDU • Procedimento explícito para finalizar a conexão Classe 3: Recuperação de erros e multiplexação • Reúne as funcionalidades das classes 1 e 2, mais a capacidade de recuperação após uma falha sinalizada pelo nível de rede (não envolvendo o usuário do nível de transporte) • Opera sobre serviço de rede do tipo B. Classe 3 • A entidade emissora mantém cópias das TPDUDT e TPDU-ED até que ela receba uma confirmação que elas chegaram com perfeição. • O recebimento de uma TPDU-RJ indica quais TPDU devem ser retransmitidas • Através da TPDU-RJ pode-se diminuir o limite superior da janela, diminuindo assim o crédito. • A desconexão é feita explicitamente através da TPDU-DR e da TPDU-DC. Classe 4: Classe de detecção e recuperação de erros • Incorpora as funcionalidades da classe 3, mais a capacidade de detecção de erros não-sinalizados pela camada de rede • Implementa mecanismos de tratamento de erros de perda, duplicação e de seqüência. • Foi projetada para atuar sobre um serviço de rede não confiável, orientado ou não à conexão. • Essa classe foi projetada para ser utilizada com conexões de rede do tipo C. Classe 4 • Estabelecimento da conexão através de um mecanismo denominado three-way handshake • Confirmação da confirmação da conexão • TPDU possuem um tempo de vida limitado (timeout) Classe 4 • As TPDU são mantidas em seqüência e o tamanho da janela pode ser alterado com o envio de uma TPDU-AK com um crédito menor • Os dados expressos também são numerados, e são entregues imediatamente ao nível de sessão Classe 4 • Mecanismo de splitting, que associa uma conexão de transporte a várias conexões de rede. • Quando não há nenhuma transmissão de TPDU, é disparado um temporizador que, quando termina, provoca o término da conexão. • Na fase de desconexão, a referência (TSAP) é congelada, não podendo ser reusada por um determinado período de tempo TPDU • • • • • • • • • CC - Conection Confirm EA - Expedited Acknowledgement CR - Connection Request ED - Expedited Data DC - Disconnect Confirm ER - ERror DR - Disconnect Request RJ - Reject DT - Data TPDU Estabelecimento da conexão Estabelecimento da conexão na classe 4 Rejeição do pedido de conexão Rejeição do pedido de desconexão Transporte de dados Acknowledgement com piggyback Formato das TPDUs Cabeçalho fixo e variável LI - Lenght indicator LI corresponde ao tamanho do cabeçalho em octetos, excluindo ele mesmo A parte fixa do cabeçalho contem parâmetros de uso freqüente Parâmetros do TPDU • O primeiro parâmetro da parte fixa é o código da TPDU, e a partir dele que são definidos o tamanho e a estrutura da TPDU. Em certos casos, a classe do protocolo e o formato (normal ou extendido) também influenciam no tamanho e na estrutura da TPDU Parte variável do TPDU • A parte variável, se existir, deve conter um ou mais parâmetros. • Seu tamanho é definido pelo LI menos o tamanho da parte fixa. • Estrutura dos parâmetros da parte variável TPDUs de estabelecimento e encerramento de conexão Campos do cabeçalho do TPDU • • • • • • • • TDU = unidade de dados do protocolo de transporte LI = indicador de tamanho CDT = crédito TSAP-ID = ponto de acesso do serviço de transporte YR-TU-NR = número da seqüência AK TIME = tempo de acknowledgement DST-REF = referência no destino SRC-REF = referência na fonte Parâmetro usados nos TPDUs * : parâmetro presente na TPDU correspondente 2,3,4 : parâmetro presente nas classes 2, 3 e 4 TPDUs de troca de dados TPDU de erro TPDUs de acknowledgement e rejeição Protocolo de transporte não orientado à conexão • Não garante a entrega nem a ordenação das TPDU ao usuário de transporte de destino • Ele não é capaz de segmentar as TPDU e não possue controle de fluxo algum • Primitivas de serviço T-UNIDATA-request T-UNIDATA-indication. Serviço de transporte não orientado à conexão • O parâmetro de qualidade de serviço está relacionado ao controle de erro realizado por uma checksum. Protocolo de transporte não orientado á conexão Formato do UD-TPDU