You are on page 1of 88

Parte IV Camada

de Transporte ISO

Camada de Transporte ISO

Camada de transporte ISO

Servios da camada rede de dados

prof. Miguel Grimm

I. Funes da Camada de
Transporte

Introduo

Protocolos de controle de duplicao e ordem

Protocolo de controle de erro

Protocolo de controle de fluxo

Gerncia de buffers

Mapeamento de unidade de dados

Mapeamento de conexes
prof. Miguel Grimm

1. Introduo

A camada de transporte ISO objetiva a transferncia


de dados entre sistemas finais de forma confivel,
isolando as camadas superiores dos problemas de
transmisso de rede, por exemplo, perda, duplicao,
fora de ordem e fragmentao de pacotes.
A camada transporte presta servios camada de
cima (camada de sesso) e usa os servios da
camada de baixo (camada de rede)
Sesso
Transporte
Redes
prof. Miguel Grimm

Principais funes da camada de


transporte

Segmentao, blocagem e concatenao fim-a-fim;


Multiplexao de conexes de transporte sobre
conexes de rede otimiza a utilizao de conexo
de rede e aumenta a vazo da conexo de transporte;
Controle de fluxo utiliza a tcnica de alocao de
crdito, a qual o receptor ajusta dinamicamente o
tamanho da janela deslizante atravs da atribuio de
crdito;
Controle de seqncia e de erros detecta e
corrige a perda, duplicao e entrega fora de ordem
de unidades de dados;
prof. Miguel Grimm

Monitorao de QdS verifica se a Qualidade de


Servio negociada mantida em uma conexo de
transporte. Avisa as entidades de sesso se a QdS
no for mantida;
Gerncia da qualidade de servio prestado;
Transferncia de unidades de dados expressos
um dado expresso tem tamanho limitado e prioridade
sobre os dados normais;
Estabelecimento e liberao de conexo na fase
de estabelecimento de conexo so negociados:
tamanho mximo das PDUs, transferncia de dados
expressa, qualidade de servio (vazo, prioridade,
etc.), classe de protocolo, etc.
prof. Miguel Grimm

Funes das classes

Esta camada possui 5 classes de protocolos orientados


a conexo.
As funes implementadas por estas classes dependem
do nvel do servio utilizado da camada de rede.
Funo

Recuperao de erros
bsicos
Controle de fluxo

Classe Classe Classe Classe Classe


0
1
2
3
4
X

X
X
X

Multiplexao
Deteco e recuperao
de erros

X
X

prof. Miguel Grimm

2. Protocolo de controle de
duplicao e ordem

Pacote duplicado. Existe, por exemplo, devido


retransmisso do pacote por causa da perda do
pacote de reconhecimento (ACK), conforme a seguir:
timeout
TX:

RX:

DT0

DT0

Pacote
Perdido
AK0

AK0

DT0

DT0

AK0
t

Pacote Duplicado

Este problema resolvido com o uso de


identificadores nos pacotes como no slide a seguir:
prof. Miguel Grimm

Protocolo de controle de duplicao


1. O emissor coloca um identificador nico em cada TPDU e envia-a;
2. O receptor recebe a T-PDU e verifica se esta j foi
recebida atravs da verificao na lista de
identificadores de T-PDUs recebidas;
3. Se no foi recebida, o identificador inserido na lista
de identificadores. Identificadores so retirados da
lista seguindo algum critrio;
4. O receptor envia o pacote de reconhecimento com o
identificador da T-PDU recebida, mesmo sendo
duplicada, e a T-PDU duplicada descartada;
5. O emissor cancela a temporizao da T-PDU a partir
do identificador do ACK recebido.
prof. Miguel Grimm

Pacote fora de ordem

O nmero de seqncia do pacote recebido no o


nmero do pacote esperado.
O pacote fora de ordem recebido armazenado at
que o pacote esperado chegue, ento, os pacotes
podem ser entregues a camada superior.
timeout
TX:

RX:

DT0

DT1

AK0
Pacote
DT0
Perdido

DT2

DT3
AK3

AK2
DT2

DT1

DT3

Pacote Esperado
AK1

DT1
t

Pacotes fora de ordem (armazenados)


prof. Miguel Grimm

10

3. Protocolo de controle de erro

A deteco de erros aliada retransmisso com o uso


de pacote de reconhecimento (AK) a estratgia mais
usada nos protocolos da camada Transporte.
timeout
TX:

RX:

DT

Erro

NK

DT

NK

Erro

DT

DT

AK

AK
t

Pacote
Corrompido

Pacote
Corrompido
prof. Miguel Grimm

11

A tcnica checksum

a tcnica utilizada para detectar erros, sendo


aplicada nos dados antes do seu envio (clculo) e
aps o recebimento da T-PDU (verificao)

d0

d1

d(n-2) d(n-1)

bytes de dados

X
Y
bytes de checksum

Um possvel algoritmo para calcular no emissor e


para verificar no receptor o checksum dado no slide
a seguir:
prof. Miguel Grimm

12

Algoritmo de clculo do checksum


(lado emissor)
D[1]

D[2]

D[L]

...

D[n]
X

D[n+1]
Y

1. Iniciar os bytes de controle c0 e c1 com ZERO;


2. Repetir as frmulas abaixo para i variando de 1 at L,

c0 c0 + d[ i ];

c1 c1 + c0.
3. Calcular X e Y como as frmulas, sendo que n indica a
posio do primeiro byte do campo checksum.

X c1 + (L n) * c0;

Y c1 (L n + 1) * c0.
4. Colocar os valores X e Y nos bytes (n) e (n+1).
prof. Miguel Grimm

13

Exemplo de clculo do checksum


Iterao i
c0 c0 + d[i]
c1 c1 + c0

D[1]
10
Incio
c0 0 [00]
c1 0 [00]

D[2]
03

D[3]
01

1a. iterao
c0 0+10 [10]
c1 0+10 [10]

4a. iterao
c0 14+20 [34]
c1 37+34 [6B]

L=6
D[4]
20

D[5]
X

2a. iterao
c0 10+03 [13]
c1 10+13 [23]

D[6]
Y
3a. iterao
c0 13+01 [14]
c1 23+14 [37]

Final
X -6B+(4-5)*34 [61]
Y 6B-(4-5+1)*34 [6B]
prof. Miguel Grimm

14

Algoritmo de verificao do checksum


(lado do receptor)
D[1]

D[2]

D[L]

...

D[L+1] D[L+2]
X
Y

1. Iniciar os bytes de controle c0 e c1 com ZERO;


2. Repetir as frmulas abaixo para i variando de 1 at L+2,
o que inclui todos os bytes recebidos, incluindo X e Y:

c0 c0 + d[ i ];

c1 c1 + c0.
3. Se c0 e/ou c1 no tiverem valor ZERO, detectado que
o ocorreu durante a transmisso.

prof. Miguel Grimm

15

Exemplo de verificao do checksum


Iterao i
c0 c0 + d[i]
c1 c1 + c0

D[1]
10
Incio
c0 0 [00]
c1 0 [00]

D[2]
03

D[3]
01

1a. iterao
c0 0+10 [10]
c1 0+10 [10]

4a. iterao
c0 14+20 [34]
c1 37+34 [6B]

L=4
n=5
D[4]
20

D[5]
61

2a. iterao
c0 10+03 [13]
c1 10+13 [23]

5a. iterao
c0 34+61 [95]
c1 6B+95 [00]
prof. Miguel Grimm

D[6]
6B
3a. iterao
c0 13+01 [14]
c1 23+14 [37]

6a. iterao
c0 95+6B [00]
c1 00+00 [00]
16

Protocolo de controle de erro


1. Checksum. O emissor calcula o checksum e coloca o X e
Y no final da T-PDU;
2. Transmisso. A T-PDU enviada e iniciada uma
temporizao;
3. Corrupo. A T-PDU corrompida antes de chegar no
receptor;
4. Verificao. O receptor verifica o checksum para toda TPDU recebida, inclusive X e Y. Se c0 e/ou c1 so diferentes
de zero, ento a TPDU recebida possui erro;
5. Tratamento. Se identificado erro, o receptor envia um
pacote de reconhecimento negativo (NAK) ou no envia
nada. Neste ltimo caso, a T-PDU ser retransmitida
quando expirar o tempo de espera do ACK do receptor.
prof. Miguel Grimm

17

Cdigos corretores de erros

Detectam e corrigem erros nas T-PDUs;

Possui uso complexo;

Utilizado somente em aplicaes com alta taxa de


erros e onde a retransmisso consome muito recurso
do meio de comunicao.

prof. Miguel Grimm

18

4. Protocolo de controle de fluxo

Utiliza uma janela deslizante com alocao de crdito


em uma conexo de transporte.
O emissor envia pacotes para o receptor de acordo
com o nmero de crditos (tamanho da janela)
disponvel.

Um crdito corresponde a um pacote.

Estudaremos os seguintes protocolos:

Crdito relativo;

Crdito absoluto.
prof. Miguel Grimm

19

Crdito relativo

Inicialmente, o nmero de crditos (3) enviado pelo


receptor e o emissor envia os pacotes.
Aps receber 3 pacotes, enviado 4 crditos e o
emissor envia mais 4 pacotes e isto se repete at
acabarem os pacotes do emissor.

[2] Recebe ACK de 3 pacotes


A B C D E F G H I AK,
[3] Envia 3 pacotes
A B C D E F G H I C
[6] Recebe ACK de 4 pacotes
A B C D E F G H I AK,
[7] Envia 04 pacotes
A B C D E F G H I G F
[10] Recebe ACK de 2 pacotes
A B C D E F G H I AK,

[1] Envia ACK de 3 pacotes


3

B A
4

E D
2

prof. Miguel Grimm

[4]
A
[5]
A
[8]
A
[9]
A

Recebe 3 pacotes
B C
Envia ACK de 4 pacotes
B C
Recebe 4 pacotes
B C D E F G
Envia ACK de 2 pacotes
B C D E F G
20

Crdito absoluto

O emissor atribui um nmero de seqncia a cada pacote;


O receptor envia o nmero do maior pacote (3) que o
emissor pode enviar.
O receptor, aps receber o pacote com o nmero enviado,
envia o novo nmero do maior pacote a ser enviado (7) e
este processo se repete at acabarem os pacotes.
[2] Recebe ACK de 3 pacotes
1 2 3 4 5 6 7 8 9 ACK,
[3] Envia 3 pacotes (at 3)
1 2 3 4 5 6 7 8 9 3
[6] Recebe ACK do pacote 7
1 2 3 4 5 6 7 8 9 ACK,
[7] Envia 4 pacotes (at 7)
1 2 3 4 5 6 7 8 9 7 6
[10] Recebe ACK do pacote 9
1 2 3 4 5 6 7 8 9 ACK,

[1] Envia ACK de 3 pacotes


3
2 1
7
5 4
9

prof. Miguel Grimm

[4]
1
[5]
1
[8]
1
[9]
1

Recebe 3 pacotes (at 3)


2 3
Envia ACK do pacote 7
2 3
Recebe 4 pacotes (at 7)
2 3 4 5 6 7
Envia ACK do pacote 9
2 3 4 5 6 7
21

5. Gerncia de buffers

responsvel pela alocao, uso e liberao de


buffers, sendo utilizado no lado emissor e no lado
receptor de uma conexo de transporte.
Aplicao. Os buffers so utilizados para combinar
taxas desiguais de emisso e recepo.
Utiliza o nmero de crditos disponvel no receptor e
so servem para:
Guardar os pacotes recebidos fora de ordem;
Guardar pacotes enviados para retransmisso se
forem perdidos ou corrompidos;
Guardar os pacotes que chegarem e que no
possam ser passados para o usurio receptor.
prof. Miguel Grimm

22

Estratgias de alocao buffer

Consiste da seleo de um buffer dentre os buffers


existentes para cada lado de uma conexo estabelecida.
O tipo de estratgia e o nmero de buffers so
estabelecidos na abertura da conexo.
Alocao fixa cada conexo possui uma quantidade de
buffers alocadas de forma esttica e permanente.

O nmero de buffers para cada conexo pode variar,


sendo o total de buffers dividido entre todas as
conexes estabelecidas.

Alocao dinmica as conexes compartilham


dinamicamente todos os buffers livres, no sendo alocado
nenhum buffer permanentemente a nenhuma conexo.
prof. Miguel Grimm

23

Tamanho dos buffers

alocada para uma conexo, sendo uma outra


atribuio do Gerenciamento de Buffers.
Existem os dois tipos de tamanho: fixo e varivel.
Buffer de tamanho fixo utilizado quando a
maioria das T-PDUs tiver tamanho muito prximo.
Se o tamanho do buffer for igual ao tamanho da maior
T-PDU, poder haver desperdcio de memria quando
pequenas T-PDUs forem armazenadas.
T-PDU1

Dados

T-PDU2 T-PDU3 T-PDU4

Livre

Dados Dados Dados


prof. Miguel Grimm

Livre
24

Buffer de tamanho varivel o tamanho dos buffers


so ajustados de acordo com o tamanho de cada TPDU.
Este tipo tem bom uso da memria quando todas as TPDUs so grandes, sendo ineficiente quando existem
algumas T-PDUs pequenas por apresentar o problema
de fragmentao.

T-PDU1

T-PDU2

T-PDU3

T-PDU4

Dados

Dados

Dados

Dados

Tcnicas mistas um misto das Estratgias de


Alocao apresentadas utilizado, o mesmo ocorre
com a tcnica de escolha do Tamanho do Buffer.
prof. Miguel Grimm

25

Tipos de buffers (ver Tanenbaum)


TPDU1
TPDU1

TPDU2

TDPU3

TPDU2

(a) Buffers de tamanho fixo encadeado.


TPDU3

TPDU4
TPDU1

TPDU2

TPDU3

(b) Buffers de tamanho varivel encadeado.

(c) Um grande buffers


circular por conexo.

6. Mapeamentos de unidade de
dados

O mapeamento de unidade de dados a forma pela


qual se relaciona PDU e SDU.
Estudaremos os tipos:

Um-para-um;

Segmentao e remontagem;

Blocagem e desblocagem;

Concatenao e separao.

prof. Miguel Grimm

27

Mapaeamento um-para-um

Ocorre quando uma nica T-PDU contm os dados de


uma nica T-SDU.
Segue o mapeamento do lado do transmissor e do lado
do receptor:
Transmissor
T-PCI

Receptor

S-PDU

T-PCI

S-PDU

(T)
T-SDU

T-SDU

prof. Miguel Grimm

28

Segmentao e remontagem
Ocorrem quando uma entidade de Transporte (T) de
um sistema aberto gera vrias T-PDUs a partir de uma
T-SDU (segmentao) e as transmite.
As vrias T-PDUs recebidas pela entidade (T) remota
so juntadas (remontagem) em uma nica SDU antes
de ser entregue a entidade da camada Sesso (S).
Segue os mapeamentos segmentao (transmissor) e
remontagem (receptor):

Transmissor
T-PCI

Receptor
T-PCI

T-SDU

T-SDU

(T)

(T)
T-PDU

T-PDU

T-PDU

prof. Miguel Grimm

T-PDU

29

Blocagem e desblocagem
Ocorrem quando uma entidade de Transporte coloca
vrias T-SDUs numa nica T-PDU (blocagem) antes de
transmiti-la.
A entidade de Transporte remota ao receber esta TPDU, retira todas as T-SDUs (desblocagem) e entregaas a entidade Sesso.
Segue os mapeamentos concatenao (transmissor) e
separao (receptor):

Transmissor

Receptor

T-PCI T-SDU T-PCI T-SDU

T-PCI T-SDU T-PCI T-SDU

(T)
T-PDU

T-PDU

prof. Miguel Grimm

30

Concateno e separao
Ocorrem quando uma entidade de Transporte concatena
vrias T-PDUs em uma nica N-SDU antes de entrega-la
entidade de Rede do mesmo sistema aberto.
A entidade de rede de destino entrega a N-SDU para a
entidade de transporte que realiza a separao das NPDUs contidas na N-SDU.
Segue os mapeamentos concatenao (transmissor) e
separao (receptor):

Transmissor
T-PDU

N-SDU

Receptor
T-PDU

(T)
(N)
prof. Miguel Grimm

T-PDU

T-PDU

N-SDU
31

Uma interao realizada entre camadas adjacentes


quando uma T-PDU trocada.
O mapeamento concatenao/separao permite que
vrias T-SDUs sejam enviadas numa nica N-SDU, o
que reduz o nmero de interao entre camadas.

prof. Miguel Grimm

32

7. Mapeamento de conexes

O mapeamento de conexes de transporte uma das


funes dessa camada.
O mapeamento determina como se constri conexes
de transporte em cima de conexes de rede.
Existem os seguintes tipos:

Uma-para-uma;

Multiplexao e demultiplexao;

Splitting e recombinao.

prof. Miguel Grimm

33

Mapeamento uma-para-uma

Uma conexo de transporte construda em cima de


uma nica conexo de rede.
Segue o mapeamento do lado do transmissor e do
lado do receptor.
Conexo de Transporte

Conexo de Transporte

Entidade
(T)

Entidade
(T)

Camada Transporte (T)

Conexo de Rede

Conexo de Rede
prof. Miguel Grimm

34

Multiplexao e demultiplexao
Vrias conexes de transporte so mapeadas numa
conexo de rede.
So utilizadas para otimizar o uso da largura de banda
disponvel para a conexo de rede, sendo a mais da
requerida pela conexo de transporte.
Segue os mapeamentos multiplexao (transmissor) e
demultiplexao (receptor).

Conexes de Transporte

Conexes de Transporte

Entidade
(T)

Conexo de Rede

Camada Transporte (T)

prof. Miguel Grimm

Entidade
(T)

Conexo de Rede

35

Splitting e recombinao
Uma conexo de transporte mapeada em vrias
conexes de rede.
So usados quando uma conexo de rede no consegue
atender aos requisitos de largura de banda da conexo de
transporte e possui melhor confiabilidade e desempenho.
Segue os mapeamentos splitting (transmissor) e
recombinao (receptor).

Conexo de Transporte

Entidade
(T)

Conexo de Transporte

Camada Transporte (T)


Conexes de Rede

Entidade
(T)

prof. Miguel Grimm

Conexes de Rede

36

Funes necessrias

Multiplexao e demultiplexao:
Identificador dos dados recebidos da conexo de
transporte;
Controle de fluxo para uso da conexo de rede;
Poltica de escalamento quando mais de uma
conexo de transporte possurem, ao mesmo
tempo, dados para enviar.
Splitting e recombinao:
Escalonamento do uso das conexes de rede pela
conexo de transporte
Reordenao dos dados da conexo de transporte
recebidos atravs de vrias conexes de rede.
prof. Miguel Grimm

37

II. Servios e Unidades de Dados


da Camada Transporte

Qualidade de servio

Primitivas de servios

Unidade de dados de protocolo

prof. Miguel Grimm

38

1. Qualidade de servio

Um dos objetivos da camada Transporte melhorar a


QdS (Qualidade de Servio) oferecida pela camada Rede
Os parmetros da QdS so especificados pelo usurio
de transporte na abertura de conexo. Os parmetros
tpicos de QdS so:
Parmetro Vazo (throughput) indica o nmero de
bytes de dados do usurio transmitidos por segundo
durante um determinado intervalo de tempo, sendo
medido e calculado separadamente para cada direo;
Taxa de Erro Residual percentual que indica o
nmero de mensagens perdidas ou corrompidas em
relao ao total enviado;
prof. Miguel Grimm

39

Retardo de Trnsito indica o tempo transcorrido desde


o envio de uma mensagem pelo usurio de transporte at
seu recebimento pelo usurio de destino, sendo medido
e calculado separadamente para cada direo;
Retardo no Estabelecimento de Conexo o tempo
transcorrido entre a solicitao de uma conexo de
transporte e o recebimento de sua confirmao pelo
usurio;
Probabilidade de Falha no Estabelecimento de
Conexo a possibilidade de a conexo no se
estabelecer dentro de um perodo mximo previsto.
Ocorre devido a congestionamento na rede, falta de
espao em tabelas, etc.;
prof. Miguel Grimm

40

Parmetro Elasticidade possibilita a camada


Transporte finalizar uma conexo espontaneamente
devido a problemas interno ou de congestionamento;
Parmetro Prioridade possibilita indicar que algumas
conexes so mais importantes do que outras, o que
importante em caso de congestionamento;
Parmetro Proteo permite o usurio de transporte
fornecer proteo contra leitura, ou modificao, de
dados por parte de terceiros.
Negociao de opo. Ocorre quando a parte local de
uma camada envia um parmetro de QdS, por ex. vazo
de 300 Mbps, para uma camada remota, na abertura de
conexo, e esta no consegue alcanar o objetivo
desejado. Se possvel, a camada remota faz uma
contraproposta, por ex. vazo de 200 Mbps, ou rejeita o
pedido da conexo.

prof. Miguel Grimm

41

2. Primitivas de servios

As primitivas de servios de uma camada definem os


servios oferecidos pela camada.
Operao

Estabelecimento
de Conexo

Primitivas
T-CONNECT.req
T-CONNECT.ind
T-CONNECT.resp
T-CONNECT.conf

Parmetros
Endereo do chamado,
endereo do chamador,
opo de dados expedidos,
QdS e dados do usurio
Endereo do respondedor,
QdS, opo de dados
expedidos e dados do usurio

T-DATA.req
Dados do usurio
Transferncia de T-DATA.ind
Dados
T-EXPEDITED DATA.req
Dados expressos do usurio
T-EXPEDITED DATA.ind
T-DISCONNECT.req
Dados do usurio
Liberao de
Razo da desconexo e
Conexo
T-DISCONNECT.ind
dados do usurio
prof. Miguel Grimm

42

3. Unidades de dados do protocolo

As unidades de dados (T-PDUs) so utilizadas para a


comunicao de entidades pares de transporte com o
uso do protocolo de transporte:
Segue a comunicao entre entidades pares:
Sistema A

Entidade
(T)

Primitivas de servios (T)

T-PDU

Sistema B

Entidade
(T)

Protocolo de Transporte (T)

Camada Rede (Meio de Comunicao)


prof. Miguel Grimm

43

PDUs de Transporte (T-PDU)

As T-PDUs usadas em conexo so apresentadas a


seguir de acordo com a operao:

Estabelecimento de conexo;

Transferncia de dados;

Liberao de conexo;

Erro de protocolo.

prof. Miguel Grimm

44

Estabelecimento de Conexo existem as T-PDUs:

CR Connection Request: pedido de conexo;

CC Connection Confirm: confirmao de


conexo.

Transferncia de Dados existem as T-PDUs:

DT Data T-PDU: dados normais;

AK Data Acknowledgment: reconhecimento de


dados normais;

RJ Reject : rejeio de dados normais;

ED Expedited Data: dados expressos;

EA Expedited Acknowledgment: reconhecimento


de dados expressos.
prof. Miguel Grimm

45

Liberao de Conexo existem as T-PDUs:

DR Disconnect Request: pedido de liberao de


conexo;

DC Disconnect Confirm: confirmao de liberao


de conexo.

Erro de Protocolo existe a T-PDU:

ER Error T-PDU: indicao de erro de protocolo.

prof. Miguel Grimm

46

III. Protocolos Orientados a


Conexo

Classes do protocolo e servios usados

Classes 0, 1, 2, 3 e 4

Primitivas e unidades de dados tpicas

Formato das unidades de dados tpicas

prof. Miguel Grimm

47

1. Classes do protocolo e
servios usados

O protocolo de transporte possui cinco classes (0, 1, 2,


3 e 4) de protocolos orientados a conexo que utilizam
trs tipos (A, B e C) de servios do protocolo de rede.
As recomendaes da ISO dos usos dos servios de
Rede pelas entidades de transporte so:.
Classe 0

Classe 1

Tipo A

Classe 2

Tipo B

Classe 3

Tipo C

Classe 4

Camada
Transporte
Camada
Rede

As descries das classes e dos tipos dos protocolos


citados so apresentadas no slide a seguir.
prof. Miguel Grimm

48

Classes do protocolo de transporte


As funes implementadas nestas classes dependem do
nvel do servio utilizado da camada Rede.
Classe 0 simples, sem nenhum mecanismo de deteco
e recuperao de erros;
Classe 1 recuperao de erros bsicos sinalizados pela
rede;
Classe 2 mecanismo de controle de fluxo e
multiplexao de vrias conexes de transporte sobre
uma nica conexo de rede;
Classe 3 recuperao de erros sinalizados pela rede e
multiplexao de vrias conexes de transporte sobre
uma nica conexo de rede;
Classe 4 deteco e recuperao de erros e multiplexao de conexes de transporte
sobre uma nica conexo
prof. Miguel Grimm
49
de rede.

Tipos de servios do protocolo de rede

Tipo A. Servio de rede orientado a conexo, possui uma


taxa de erro residual aceitvel e uma taxa de erro
sinalizado aceitvel. Detecta erros de perda, duplicao,
corrupo e seqncia, no existindo quase nenhuma
perda de dados;
Tipo B. Servio de rede orientado a conexo, possui uma
taxa de erro residual aceitvel e uma taxa de erro
sinalizado no aceitvel. Detecta os mesmo tipos de erros
do tipo A, mas possui um ndice maior de erros;
Tipo C. Servio de rede orientado e no orientado a
conexo, possui taxa de erro residual no aceitvel e taxa
de erro sinalizado no aceitvel. No so detectados
erros de perda, duplicao, corrupo e seqncia.
prof. Miguel Grimm

50

Classe 0

Possui o servio mais simples das classes.


Servio de rede. Usa o servio de rede confivel orientado
a conexo do Tipo A.
Funcionalidades. Possuem as seguintes funes:
Estabelecimento, rejeio e liberao de conexo;
Transferncia e segmentao / remontagem de dados;
Aviso de erros;
Existe uma conexo de rede dedicada para cada
conexo de transporte;
Usa os mecanismos de desconexo, deteco e
recuperao de erros, controle de seqncia e de
controle de fluxo da camada rede (servio confivel).
Unidades de dados: CR, CC, DT, DR, DC e ER.
prof. Miguel Grimm

51

Classe 1

Possui mecanismo de recuperao de erros bsicos sinalizados


pela rede.
Servio de rede. Usa uma conexo com um mnimo de
sobrecarga da rede Tipo B.
Funcionalidades. Possui os seguintes mecanismos:
Transferncia, segmentao / remontagem e concatenao /
separao de dados;
Estabelecimento, rejeio e liberao de conexo;
Envio de dados no estabelecimento de conexo;
Recuperao de erros notificados pela camada Rede;
Transferncia de dados expressos;
Estabelece sincronismo no reset do servio de rede
(ressincronizao);
Utiliza o controle de fluxo da camada de rede.
Unidades de dados: CR, CC, DT, AK, RJ, ED, EA, DR, DC e ER.
prof. Miguel Grimm

52

Classe 2

Possui mecanismo de controle de fluxo e multiplexao de vrias


conexes de transporte sobre uma nica conexo de rede.
Servio de rede. Usa o servio de rede confivel orientado a
conexo do Tipo A.
Funcionalidades. Possui os seguintes mecanismos:
Transferncia, segmentao / remontagem e concatenao /
separao de dados;
Estabelecimento, rejeio e liberao de conexo;
Controle de fluxo com alocao de crdito [opcional];
Multiplexao / demultiplexao de conexes;
No existe deteco / recuperao de erros por utilizar uma
rede orientada a conexo.
Unidades de dados: CR, CC, DT, AK, ED, EA, DR, DC e ER.
prof. Miguel Grimm

53

Classe 3

Possui recuperao de erros sinalizados pela rede e


multiplexao de vrias conexes de transporte sobre uma
nica conexo de rede;
Servio de rede. Sugere o uso do servio de rede do Tipo C.
Funcionalidades. Estende a funcionalidade da classe 2 com
a recuperao de erros:
Transferncia, segmentao / remontagem e concatenao
/ separao de dados;
Estabelecimento, rejeio e liberao de conexo;
Controle de fluxo com alocao de crdito [opcional];
Multiplexao / demultiplexao de conexes;
Recupera dados com o uso de checksum negociado no
estabelecimento da conexo;
Estabelece sincronismo no reset do servio de rede
(ressincronizao). prof. Miguel Grimm
54
Unid. de dados: CR, CC, DT, AK, RJ, ED, EA, DR, DC e ER.

Classe 4

Possui o servio de deteco e recuperao de erros e multiplexao


de conexes de transporte sobre uma nica conexo de rede.
Servio de rede. Recomenda o uso do servio da rede do Tipo C.
Funcionalidades. Estende a funcionalidade da classe 3 com
deteco e recuperao de erros:
Transferncia, segmentao / remontagem e concatenao /
separao de dados;
Estabelecimento, rejeio e liberao de conexo;
Multiplexao / demultiplexao e splitting / recombinao;
Controle de fluxo;
Detecta (temporizao) T-PDUs perdidas e recupera-os
(retransmisso);
Detecta T-PDUs duplicadas e fora de seqncia com o uso de
nmero de seqncia e de temporizao;
Detecta erros com o uso de checksum negociado no
estabelecimento da conexo.
prof. Miguel Grimm
55
Unidades de dados: CR, CC, DT, AK, EA, DR, DC e ER.

2. Primitivas e unidades de dados


tpicas

As operaes ilustradas a seguir apresentam vrias


situaes de ocorrncias dos usos das primitivas de
servios e unidades de dados.
Operao de Estabelecimento de Conexo
apresentada de duas formas distintas com as
primitivas e unidades de dados:
Usurio
Iniciador

T-C.req
[1]
[2]

Usurio
Respondedor
T-C.conf
[6]

T-C.ind
[3]

CR-PDU
CC-PDU

Iniciador

Prestador

T-C.req

CR-PDU

T-C.resp
[4]

T-C.conf

[5]

CC-PDU

Respondedor
T-C.ind
T-C.resp

t
prof. Miguel Grimm

56

2. Primitivas e unidades de dados


tpicas

As operaes ilustradas a seguir apresentam vrias


situaes de ocorrncias dos usos das primitivas de
servios e unidades de dados.
Operaes a serem ilustradas:
Estabelecimento de conexo;

Rejeio de pedido de conexo;

Transferncia de dados;

Liberao de conexo.
prof. Miguel Grimm

57

Operao de rejeio de pedido de


conexo
A rejeio de conexo pelo usurio respondedor e
pelo prestador de servio remoto, respectivamente.

Iniciador
T-C.req

T-D.ind

Prestador
CR-PDU

DR-PDU
DC-PDU

Respondedor

Iniciador
T-C.req

T-C.ind
T-D.req

TD.ind

Rejeio da
conexo

prof. Miguel Grimm

Prestador

Respondedor

CR-PDU
DR-PDU
DC-PDU

Rejeio da
conexo

58

Operao de transferncia de dados

A transferncia de dados normais e expressos,


respectivamente.
O usurio emissor pode ser o usurio iniciador ou
usurio respondedor da abertura de conexo.
Emissor
T-DT.req

Prestador
DT-PDU

Receptor

Emissor
T-ED.req

T-DT.ind

Prestador
ED-PDU

Receptor

T-ED.ind

EA-PDU

t
t

prof. Miguel Grimm

59

Operao de liberao de conexo

A liberao de conexo iniciada pelo usurio iniciador


e pelo prestador de servio local, respectivamente.

Iniciador Prestador
T-D.req

DR-PDU

Respondedor

Local Prestador
T-D.ind

T-D.ind

DC-PDU
t

DR-PDU

Remoto

T-D.ind

DC-PDU
t

prof. Miguel Grimm

60

A liberao de conexo iniciada por ambos usurios e


inicia pelo prestador de servio e pelo usurio,
respectivamente.

Usurio Prestador
T-D.req

Liberao
t

DR-PDU
DR-PDU

Usurio

Usurio

Prestador

Usurio

T-D.req

T-D.req

DR-PDU

T-D.ind

Liberao

Liberao

DC-PDU

Liberao

prof. Miguel Grimm

61

3. Formato das unidades de dados


de protocolo

A estrutura geral da T-PDU com os campos mais


comuns apresentada a seguir.
A existncia dos campos depende, principalmente, do
tipo e da classe do protocolo usada.

LI Cdigo

Ref
Ref
Tam.
Check

Dest Fonte
PDU
sum

prof. Miguel Grimm

Dados

62

LI (Length Indicator) indica o tamanho do


cabealho, com exceo do campo LI;
Cdigo indica o tipo da T-PDU, por ex., CR, CC,
DT, DR, DC, etc.;
Ref. Dest identificador da conexo de transporte no
sistema remoto (destino);
Ref. Fonte identificador da conexo de transporte
no sistema local;
Tam. PDU define o tamanho mximo da T-PDU
com o cabealho, em bytes;
Checksum Resultado do algoritmo de checksum
executado sobre a T-PDU (2 bytes);
Dados dados do usurio (tratados de forma
transparente pelo protocolo).
prof. Miguel Grimm

63

PDU de pedido de abertura de conexo

A PDU CR (Connect Request) usada para enviar


pedidos de estabelecimento de conexo.

LI CR Crdito

Ref. Classe/ T- Tam


Segur Check Tempo
DADOS
Verso
Fonte Opo SAP PDU
ana sum Ack

T-SAP identificao do SAP de transporte local


(retorna na confirmao);
Segurana definido pelo usurio da camada de
transporte, por ex., senha;
prof. Miguel Grimm

64

Crdito alocao inicial de crditos do protocolo de


controle de fluxo do receptor;
Classe identifica a classe do protocolo de transporte (0,
1, 2, 3 ou 4)
Opo indica o uso de formato de dados normal ou
estendido ou, ainda, o uso ou no de controle de fluxo
explcito;
Verso nmero da verso do protocolo (no usado na
classe zero);
Tempo Ack possui o tempo mximo, em milissegundos,
em que a entidade receptora deve confirmar os dados
enviados (temporizao de reconhecimento);
prof. Miguel Grimm

65

Esta T-PDU pode possuir ainda os seguintes campos:


Vazo (throughhput) valores de vazo (mnima, ideal,
mdia e mxima);
Residual taxa de erro residual mnima e ideal de erros
no reportados;
Prioridade prioridade da conexo de transporte a ser
criada (zero a mais alta);
Atrasos atrasos na transmisso de mensagens
desejado e mnimo aceitos;
Reatrib tempo de reatribuio, em segundos, que uma
conexo de transporte deve ser tentada novamente aps
uma falha.
Opes Adicionais indica o uso ou no de: dados
expressos em conexo de rede, confirmao de
recuperao, checksum e transferncia de dados
prof. Miguel Grimm
66
expressos;

PDU de confirmao de conexo

A PDU CC (Connection Confirm) usada para enviar


respostas de pedidos de conexo.

LI CC Crdito

Ref. Ref. Classe/ T- Tam


Check Tempo
DADOS
Verso
sum
Dest Fonte Opo SAP PDU
Ack

Ref. Destino possui o valor que veio no campo Ref.


Fonte da CR;
T-SAP possui o valor do parmetro T-SAP enviado
no CR.
prof. Miguel Grimm

67

PDU de dados

A PDU DT (Data) usada para enviar dados numa


conexo estabelecida.
LI

DT Ref. Dest

No. DT

Checksum

DADOS

No. DT nmero de seqncia de transmisso. No


formato normal possui um byte e no formato estendido
dois bytes.

prof. Miguel Grimm

68

PDU de reconhecimento de dados

A PDU AK (Acknowledgement) usada para


confirmar uma T-PDU DT.
LI AK

Crdito Ref. Dest No.Prox DT

Checksum

Crdito valor de crditos que informa o tamanho da


janela do receptor;
No. Prox DT nmero de seqncia de transmisso
da prxima T-PDU esperada.
prof. Miguel Grimm

69

PDU de liberao de conexo

A PDU DR (Disconect Request) usada para solicitar


uma desconexo estabelecida anteriormente, onde:

Motivo razo da desconexo.


LI DR Ref Dest

Ref Fonte

Motivo

Dados

A PDU DC (Disconect Confirm) usada para


confirmar uma desconexo solicitada.
LI DC

Ref Dest

Ref Fonte

prof. Miguel Grimm

Checksum

70

PDU de dados expressos

A PDU ED (Expedited Data) usada para enviar


dados expressos.
LI

ED Ref. Dest No. ED

Checksum

DADOS

Ref. Dest identificao do T-SAP da entidade


receptora;
No. ED nmero de seqncia de transmisso. No
formato normal possui um byte e no formato
estendido dois bytes.
prof. Miguel Grimm

71

PDU de reconhecimento de dados


expressos

A PDU EA (Expedited Acknowledgement) usada


para confirmar T-PDUs de dados expressos.
LI

EA Ref. Dest

No. EA

Checksum

Ref. Dest identificao da conexo de transporte da


entidade de destino;
No. EA nmero de seqncia de transmisso da TPDU confirmada.
prof. Miguel Grimm

72

PDU de erro de protocolo

A PDU ER (Error) usada para reportar uma


condio de erro de protocolo.
LI

ER

Ref. Dest

Causa T-PDU Invlida Checksum

Causa indica a causa do erro no especificado ou


valores invlidos de cdigo, tipo ou campo;
T-PDU Invlida informaes da T-PDU rejeitada.

prof. Miguel Grimm

73

PDU de rejeio

A PDU RJ (Reject) usada para solicitar a


retransmisso de T-PDU recebida ou reduzir o
tamanho da janela deslizante.
LI

RJ

Crdito

Ref. Dest

No. Prox. DT

Checksum

Crdito indica o limite superior da janela deslizante;


No. Prox. DT nmero de seqncia da DT-PDU a
ser retransmitida;
prof. Miguel Grimm

74

IV. Mquina de Estados

Mquina do lado iniciador

Mquina do lado respondedor

Mquina unificada

prof. Miguel Grimm

75

Arquitetura do protocolo de transporte

O diagrama ser baseado na arquitetura do protocolo


de transporte a seguir:
Usurio B

Usurio A
req
[1]

T-SAP

conf
[4]

ind
[2]

T-SAP

resp
[3]

Transporte (T)

Lado Respondedor

Lado Iniciador

prof. Miguel Grimm

76

Simbologia usada

! = Enviar

? = Receber

prof. Miguel Grimm

77

Mquina de servio do lado iniciador


Repouso
? T-CONNECT.req [1]
Conexo Pendente
! T-CONNECT.conf [2]

! T-DISCONNECT.ind
? T-DISCONNECT.req

Repouso

! T-DISCONNECT.ind [4]
? T-DISCONNECT.req [4]

! T-DATA.ind [3]
Conexo
Fechada
?T-DATA.req [3]

prof. Miguel Grimm

78

Mquina do servio do lado respondedor


Repouso
! T-CONNECT.ind [1]
Conexo Pendente
? T-CONNECT.resp [2]

! T-DISCONNECT.ind
? T-DISCONNECT.req

Repouso

! T-DISCONNECT.ind [4]
? T-DISCONNECT.req [4]

! T-DATA.ind [3]
Conexo
Fechada
?T-DATA.req [3]

prof. Miguel Grimm

79

Mquina de servios unificada

As seqncias permitidas para as primitivas esto no


diagrama de transio de estado do protocolo de
transporte com e sem conexo so dadas a seguir.
Lado do Iniciador
? T-DATA.req ou
! T-DATA.ind

Lado do Respondedor

? T-CONNECT.req
Conexo
Pendente I
! T-CONNECT.conf

? T-DATA.req ou
! T-DATA.ind
! T-CONNECT.ind

Repouso

Conexo
Pendente R
! T-DISCONNECT.ind ou
? T-DISCONNECT.req
? T-CONNECT.resp
Conexo
Fechada
? T-DATA.req ou
! T-DATA.ind
prof. Miguel Grimm

80

Observaes:

Pedido de conexo vindo do usurio (sesso)

Pedido de conexo vindo do transporte distante.

Criar Mquina de estados com o uso de PDU

prof. Miguel Grimm

81

V. Servio da Camada Rede

Primitivas de servios da camada rede

Modelo da camada

Protocolo no orientado a conexo

prof. Miguel Grimm

82

1. Primitivas de servios da camada


rede

As primitivas de servios de uma camada definem os


servios oferecidos pela camada.

Operao
Servios
Estabelecimento Estabelecimento de
de conexo
conexo
Transferncia de
dados normais
Transferncia de
Transferncia de dados expressos
Dados com
Reinicializao
conexo
(reset)
Reconhecimento
de dados normais
Liberao da
Liberao da
Conexo
Conexo

Primitivas
N-CONNECT.req, N-CONNECT.ind,
N-CONNECT.resp, N-CONNECT.conf
N-DATA.req
N-DATA.ind
N-EXPEDITED DATA.req
N-EXPEDITED DATA.ind
N-RESET.req, N-RESET.ind,
N-RESET.resp e N-RESET.conf
N-DATA ACKNOW LEDGE.req
N-DATA ACKNOW LEDGE.ind
N-DISCONNECT.req
N-DISCONNECT.ind

prof. Miguel Grimm

83

2. Modelo da camada

Modelo de abertura de conexo

Modelo de envio de dados

Protocolo no-orientado a conexo

prof. Miguel Grimm

84

Modelo de abertura de conexo

Observar que aps o pedido da abertura de conexo


pela entidade sesso, estabelecida a conexo no
nvel de rede para depois ser estabelecido conexo
de transporte.
SESSO (S)

SESSO (S)
T-C.req
[1]

T-C.ind
[8]

T-C.conf
[12]

T-C.resp
[9]

TRANSPORTE (T)

TRANSPORTE (T)
N-C.req N-C.conf N-DT.req N-C.ind
(CR)
(CC)
[2]
[5]
[6]
[11]

N-C.ind
[3]

N-C.resp N-DT.ind N-DT.req


(CR)
[4]
(CC)
[7]
[10]

REDE (N)
prof. Miguel Grimm

85

Modelo de envio de dados

Observar que o pacote DT segmentado nos pacotes


DT0, DT1 e DT2.
SESSO (S)

SESSO (S)

T-DT.req
[1]

T-DT.ind
[8]

TRANSPORTE (T)

TRANSPORTE (T)

N-DT.req N-DT.req N-DT.req N-DT.ind


(DT0)
(DT1)
(DT2)
(AK)
[2]
[3]
[4]
[10]

N-DT.ind
(DT0)
[5]

N-C.ind N-DT.ind N-DT.req


(DT1)
(DT2)
(AK)
[6]
[7]
[9]

REDE (N)

prof. Miguel Grimm

86

Protocolo no-orientado a conexo

Primitivas de servios:
Operao

Primitivas

Envio de dados

T-UNITDATA.req
T-UNITDATA.ind

Endereo fonte, endereo de


destino, QdS e dados

Envio de dados:
Usurio
T-UD.req

Parmetros

Prestador
UD-PDU

Usurio
T-UD.ind

Formato da unidade de dados de protocolo:


LI Cdigo

T-SAP T-SAP
Checksum
Origem Destino
prof. Miguel Grimm

DADOS
87

Exerccios
a) Criar o protocolo de Nomes centralizado;
b) Criar o protocolo de Nomes distribudo;
c) Criar o protocolo de Rendez-vous.

prof. Miguel Grimm

88