320 likes | 460 Views
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
E N D
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 Classe Tipo Nome Protocolo Rede 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
Exemplo de PrimitivasAPI • 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 emRedes Públicas ISO 8072 - Serviço de Transporte orientado à ligação ISO 8073 - 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
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 • Inteiros (complemento a 2, complemto a 1, 2 bytes, 4 bytes, ...) • Flutuantes • 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-CONNECT xxxx P-RELEASE xxxx P-U-ABORT xx P-P-ABORT x P-DATA xx P-EXPEDITED-DATA xx P-TOKEN-GIVE xx P-TOKEN-PLEASE xx P-SYNC-MAJOR xxxx P-SYNC-MINOR xxxx P-RESYNCHRONIZE xxxx P-ACTIVITY-START xx P-ACTIVITY-END xxxx P-ACTIVITY-DISCARD xxxx P-ACTIVITY-RESUME xx P-U-EXCEPTION-REPORT xx P-P-EXCEPTION-REPORT x P-ALTER-CONTEXT xxxx
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, -- 20 caracteres • Comprimento INTEGER, • Criptado BOOLEAN • }
ASN.1Tipos Primitivos • INTEGER Qualquer inteiro • BOOLEAN TRUE ou FALSE • BIT STRING 0 ou mais bits • OCTET STRING 0 ou mais bytes • ANY União de todos os tipos • NULL Nenhum tipo • OBJECT IDENTIFIER Objectos OSI • Exº Objecto OSI • {iso standard 8571 part 4 ftam-pic(1)}
ASN.1Construtores SEQUENCE Lista ordenada de vários tipos SEQUENCE OF Lista ordenada de um só tipo SET Colecção não ordenada de vários tipos SET OF Colecção não ordenada de um só tipo CHOICE Qualquer tipo de uma lista
ASN.1Outros Tipos NumericString -- 8723653 PrintableString -- asAU)YU7767(/Ty=y GeneralizedTime -- 19931020083412.6 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, -- 20 caracteres • Numero INTEGER, • Andar INTEGER, • Letra OCTET, • Registada BOOLEAN DEFAULT FALSE, • Data GeneralizedTime 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º • Exº • Envelope ::= [APPLICATION 9] { • Rua OCTET STRING, -- 20 caracteres • Numero INTEGER, • Andar INTEGER, • Letra OCTET, • Registada BOOLEAN DEFAULT FALSE, • Data GeneralizedTime OPTIONAL • }
Sintaxe de TransferênciaBER - Basic Encoding Rules Cada valor transmitido é codificado 1 BOOLEAN 2 INTEGER 3 BIT STRING 4 OCTET STRING 5 NULL 6 OBJECT IDENTIFIER ... 18 NUMERIC STRING ... 23 GENERALIZED TIME ... Tipo Tag Código 00 - UNIVERSAL 01 - APPLICATION 10 - Específ. contexto 11 - PRIVATE 0 - tipo primitivo 1 - tipo derivado Mecanismos para contemplar tags superiores a 30
Sintaxe de TransferênciaBER - Basic Encoding Rules TAG Compr. dados Dados 1 byte para dados até 128 bytes, mais que um byte para dados maiores
ASN.1Aspectos 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