Nível de Transporte
Objectivos do Nível Disponibilizar um serviço de transporte de sequências de bits aos níveis superiores Eliminar as limitações dos níveis inferiores Introduzir Qualidade de Serviço
Estrutura do Nível TSAPs fornecidos como pontos de entrada dos níveis superiores Usa NSAPs dos níveis inferiores TPDUs trocadas entre níveis de transporte comunicantes –De dados –De sinalização / controlo
QoS Permite controlar ou saber antecipadamente: –Tempo de Estabelecimento de Ligação –Probabilidade de Falha de Estabelecimento de ligação –Throughtput –Atraso de Trânsito –Taxa de Erro Residual –Probabilidade de Falha de Transferência –Atraso de Libertação de Ligação –Probabilidade de Falha de Libertação de Ligação –Protecção –Prioridade –Resiliência
Tipos de Redes A - Sem erros e sem RESETs B - Sem erros mas com RESETs C - Com erros, pacotes perdidos e/ou duplicados e com RESETs
Classes de Protocolos de Transporte 0 A Classe simples 1 B Classe básica com recup. de erros 2 A Multiplexagem 3 B Recuperação de erros e multiplexagem 4 C Detecção e recuperação de erros Nome Tipo Rede Classe Protocolo
Exemplo de Primitivas API numero_ligacao = CONNECT (TSAP_local, TSAP_remoto) numero_ligacao = LISTEN (TSAP_local) estado = DISCONNECT (numero_ligacao) estado = SEND (numero_ligacao, buffer, numero_bytes) estado = RECEIVE (numero_ligacao, buffer, numero_bytes)
Nível de Transporte em Redes Públicas ISO Serviço de Transporte orientado à ligação ISO Protocolos de Transporte Classes de protocolo: TP0, TP1, TP2, TP3 e TP4
Nível de Transporte na Internet TCP - Transmission Control Protocol Nível de transporte orientado à ligação UDP - User Datagram Protocol Nível de transporte sem ligação Ambos funcionam sobre IP TCP é semelhante a OSI/TP4
TCP Nível de transporte recebe mensagens arbitrárias para transmitir e: Fragmenta-as em pedaços inferiores a 64k Trata de retransmissões de pacotes Trata de reordenações de pacotes Trata de tempos expirados (timeouts) Controlo de fluxo (janela de 16 bits - número de bytes) TCP numera as mensagens com 32 bits
PDU do TCP
Nível de Apresentação Fornece serviços ao nível de Aplicação Usa os serviços do nível de Sessão Este nível trata do significado da informação trocada entre os 2 sistemas envolvidos na comunicação Os computadores envolvidos podem ter diferentes modos de representar a informação
Funções do Nível Dar às aplicações um modo de acesso às sessões Disponibilizar um modo de especificar estruturas de dados complexas Gerir o conjunto de estruturas de dados em uso Converter os dados entre formatos internos e externos Representação (diferentes códigos) Compressão Segurança e privacidade
Representação Diferentes códigos (EBCDIC, ASCII) Diferentes formatos dos números oInteiros (complemento a 2, complemto a 1, 2 bytes, 4 bytes,...) o Flutuantes o Big-endian, little-endian Estruturas de dados (RECORDS, struct,...) Outras estruturas (horas, datas,...)
Contextos Entidades que agrupam as várias estruturas de dados necessárias a uma aplicação As estruturas de dados necessárias por uma aplicação podem variar ao longo do desenrolar de uma aplicação Estas estruturas podem ser agrupadas em contextos que variam ao longo do tempo Há primitivas para mudar os contextos
Primitivas de Apresentação (modo com ligação - algumas) RIRC (Request/Indication/Response/Confirm) P-CONNECTxxxx P-RELEASExxxx P-U-ABORTxx P-P-ABORT x P-DATAxx P-EXPEDITED-DATAxx P-TOKEN-GIVExx P-TOKEN-PLEASExx P-SYNC-MAJORxxxx P-SYNC-MINORxxxx P-RESYNCHRONIZExxxx P-ACTIVITY-STARTxx P-ACTIVITY-ENDxxxx P-ACTIVITY-DISCARDxxxx P-ACTIVITY-RESUMExx P-U-EXCEPTION-REPORTxx P-P-EXCEPTION-REPORT x P-ALTER-CONTEXTxxxx
APDUs O nível de cima, APLICAÇÃO, manipula muitas estruturas de dados complexas que são transmitidas como APDUs Os campos destas APDUs são de diversos tipos: booleanos inteiros datas strings,... A ideia é agrupar as várias estruturas de dados necessárias por uma aplicação numa entidade chamada package e representar esssas estruturas de dados numa notação simbólica, ASN.1
ASN.1 Abstract Syntax Notation, One Como interligar computadores com representações internas diferentes ? Alternativa 1 Conversão das estruturas de dados a enviar para uma notação intermédia Alternativa 2 Conversores de N-formatos para N-formatos
ASN.1 Método para descrever estruturas de dados abstractas Exº Envelope :== SEQUENCE { Nome OCTET STRING, caracteres Comprimento INTEGER, Criptado BOOLEAN }
ASN.1 Tipos Primitivos INTEGERQualquer inteiro BOOLEANTRUE ou FALSE BIT STRING0 ou mais bits OCTET STRING0 ou mais bytes ANYUnião de todos os tipos NULLNenhum tipo OBJECT IDENTIFIERObjectos OSI Exº Objecto OSI {iso standard 8571 part 4 ftam-pic(1)}
ASN.1 Construtores SEQUENCELista ordenada de vários tipos SEQUENCE OFLista ordenada de um só tipo SETColecção não ordenada de vários tipos SET OF Colecção não ordenada de um só tipo CHOICEQualquer tipo de uma lista
ASN.1 Outros Tipos NumericString PrintableString-- asAU)YU7767(/Ty=y GeneralizedTime TeletexString VideotexString
Opções e Defeitos Os campos de uma estrutuar descrita em ASN podem ser: OPTIONAL - o campo pode estar presente, ou não DEFAULT - se não estiver presente é assumido um valor de defeito Exº Envelope ::= { Rua OCTET STRING, caracteres Numero INTEGER, Andar INTEGER, Letra OCTET, Registada BOOLEAN DEFAULT FALSE, DataGeneralizedTime OPTIONAL }
Tagging Na recepção, como identificar os campos se alguns são opcionais? Incluir em cada campo um tag, valor que precede o valor e que o identifica Tipos de tags: UNIVERSAL APPLICATION PRIVATE específico de contexto ExºUNIVERSAL 3
Exº Envelope ::= [APPLICATION 9] { Rua OCTET STRING, caracteres Numero INTEGER, Andar INTEGER, Letra OCTET, Registada BOOLEAN DEFAULT FALSE, DataGeneralizedTime OPTIONAL }
Sintaxe de Transferência BER - Basic Encoding Rules Cada valor transmitido é codificado Tipo Tag 0 - tipo primitivo 1 - tipo derivado 00 - UNIVERSAL 01 - APPLICATION 10 - Específ. contexto 11 - PRIVATE Código 1BOOLEAN 2INTEGER 3BIT STRING 4OCTET STRING 5NULL 6OBJECT IDENTIFIER... 18NUMERIC STRING... 23GENERALIZED TIME... Mecanismos para contemplar tags superiores a 30
Sintaxe de Transferência BER - Basic Encoding Rules TAGCompr. dados 1 byte para dados até 128 bytes, mais que um byte para dados maiores Dados
ASN.1 Aspectos Associados BER - Basic Encoding Rules Regras que indicam como as estruturas de dados são realmente codificadas Compiladores de ASN.1 Programas que traduzem uma descrição ASN.1 num conjunto de funções em C (ou noutra linguagem, mas o C é mais vulgar) que realizam a codificação e descodificação dos dados
Tipos de Serviço CBR
VCIs e VPIs Protocolo orientado à ligação PVCs e SVCs VPIs
Endereçamento Usa E.164