Nível de Transporte. Objectivos do Nível Disponibilizar um serviço de transporte de sequências...

Preview:

Citation preview

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

NomeTipo

Rede

Classe

Protocolo

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 ProtocolNível de transporte orientado à ligação

UDP - User Datagram ProtocolNí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ãoSegurança e privacidade

Representação

• Diferentes códigos (EBCDIC, ASCII)

• Diferentes formatos dos númerosInteiros (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 xxxxP-RELEASE xxxxP-U-ABORT xxP-P-ABORT xP-DATA xxP-EXPEDITED-DATA xxP-TOKEN-GIVE xxP-TOKEN-PLEASE xxP-SYNC-MAJOR xxxxP-SYNC-MINOR xxxxP-RESYNCHRONIZE xxxxP-ACTIVITY-START xxP-ACTIVITY-END xxxxP-ACTIVITY-DISCARD xxxxP-ACTIVITY-RESUME xxP-U-EXCEPTION-REPORT xxP-P-EXCEPTION-REPORT xP-ALTER-CONTEXT xxxx

APDUsO 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.1Abstract 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.1Método para descrever estruturas de dados abstractas

Exº

Envelope :== SEQUENCE {Nome OCTET STRING, -- 20 caracteresComprimento INTEGER,Criptado BOOLEAN}

ASN.1Tipos

PrimitivosINTEGER Qualquer inteiroBOOLEAN TRUE ou FALSEBIT STRING 0 ou mais bitsOCTET STRING 0 ou mais bytesANY União de todos os tiposNULL Nenhum tipoOBJECT IDENTIFIER Objectos OSI

Exº Objecto OSI{iso standard 8571 part 4 ftam-pic(1)}

ASN.1Construtore

sSEQUENCE Lista ordenada de vários tiposSEQUENCE OF Lista ordenada de um só tipoSET Colecção não ordenada de vários tiposSET OF Colecção não ordenada de um só tipo CHOICE Qualquer tipo de uma lista

ASN.1Outros TiposNumericString -- 8723653

PrintableString -- asAU)YU7767(/Ty=y

GeneralizedTime -- 19931020083412.6

TeletexString

VideotexString

Opções e DefeitosOs 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 caracteresNumero INTEGER,Andar INTEGER,Letra OCTET,Registada BOOLEAN DEFAULT FALSE,Data GeneralizedTime OPTIONAL}

TaggingNa 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 caracteresNumero INTEGER,Andar INTEGER,Letra OCTET,Registada BOOLEAN DEFAULT FALSE,Data GeneralizedTime OPTIONAL}

Sintaxe de Transferência

BER - Basic Encoding RulesCada valor transmitido é codificado

Tipo Tag

0 - tipo primitivo1 - tipo derivado

00 - UNIVERSAL01 - APPLICATION10 - Específ. contexto11 - PRIVATE

Código1 BOOLEAN2 INTEGER3 BIT STRING4 OCTET STRING5 NULL6 OBJECT IDENTIFIER...18 NUMERIC STRING...23 GENERALIZED TIME...

Mecanismos para contemplar tags superiores a 30

Sintaxe de TransferênciaBER - Basic Encoding Rules

TAG Compr. dados

1 byte para dados até 128 bytes,mais que um byte para dados maiores

Dados

ASN.1Aspectos

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

Recommended