O documento descreve os protocolos de transporte, incluindo o estabelecimento de conexão, transferência de dados e liberação de conexão. É apresentado o modelo de máquinas de estados finitas para especificar os protocolos, mostrando exemplos de estabelecimento bem-sucedido, recusado e desistência de estabelecimento.
1. Estudo: protocolo de transporte
Estudo de caso: protocolo de transporte
Da especificação à implementação
Máquinas de estados finitos
Máquinas de estados finitos estendida
Tabelas de estados
Pseudocódigo
2. Estudo: protocolo de transporte
Camada transporte
Objetivo → melhorar a qualidade do serviço oferecido pela
camada rede
Serviço de transporte
Protocolo de transporte
Modo de transmissão orientado à conexão
Estabelecimento da conexão
Transferência de dados
Liberação da conexão
Supondo a camada transporte entre a aplicação e a
rede (modelo híbrido)
3. Primitivas do serviço de transporte
Estabelecimento de conexão
T-Connect.Request/Indication
T-Connect.Response/Confirm
Transferência de dados
T-Data.Request/Indication
T-Expedited-Data.Request/Indication
Fechamento de conexão
T-Disconnect.Request/Indication
4. Estudo: protocolo de transporte
Implementação de protocolos
Especificação em máquinas de estados finitos estendida
para o transmissor e o receptor
Tradução em linguagem de programação
5. Máquinas de estados finitos
Cada protocolo está sempre em um estado
específico que consiste em todos os valores de suas
variáveis
Para cada estado, existem zero ou mais transições
possíveis para outros estados
Uma transição pode ocorrer quando um dado é
enviado, um dado chega ou um temporizador
estoura
Gráfico direcionado que mostra todos os estados
como nós e as transições como arcos diferenciados
6. Máquinas de estados finitos
Teoria de grafos indica quais estados são
alcançáveis e quais não o são (análise de
alcançabilidade)
Eventos tais como a chegada de dados e o estouro
de temporizadores ocorrem
Alcançabilidade usada para detectar erros na
especificação do protocolo
Incompleta → dado chega em um estado e a máquina não
sabe que ação tomar
Bloqueio → existe um conjunto de estados para o qual não
há saída e nenhum progresso pode ser feito
7. PDUs do protocolo de transporte
CR: Connect Request
CC: Connect Confirm
DR: Disconnect Request
DC: Disconnect Confirm
DT: Data
ED: Expedited Data
AK: Data Acknowledgement
EA: Expedited Data Acknowledgement
RJ: Reject
ER: Error
8. Estudo: protocolo de transporte
Exemplo: Conexão
Estabelecimento bem sucedido
Estabelecimento recusado
Desistência de estabelecimento
Dois modelos
Máquinas de estados finitos para as sequências permitidas
para as primitivas
Máquinas de estados finitos estendidas (primitivas e PDUs)
28. Desistência de estabelecimento
Iniciador Respondedor Iniciador Respondedor
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Conn_Resp
CC
Aguarda Aguarda
Conectado
29. Desistência de estabelecimento
Iniciador Respondedor Iniciador Respondedor
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Disc_Req T_Disc_Req
T_Conn_Resp
CC
Aguarda Aguarda
Conectado
30. Desistência de estabelecimento
Iniciador Respondedor Iniciador Respondedor
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Disc_Req
DR T_Conn_Resp
Aguarda Aguarda
Conectado
31. Desistência de estabelecimento
Iniciador Respondedor Iniciador Respondedor
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Disc_Req
DR
T_Disc_Ind
Aguarda Aguarda
T_Disc_Ind
Conectado
32. Estudo de caso: transporte
Máquinas de estados finitos estendidas contém
especificações do tipo condição/ação
Condições para o disparo das transições e ações a serem
tomadas quando as transições forem disparadas
?MSG1/!MSG2 (recebe MSG1 e envia MSG2)
52. Desistência de estabelecimento
Iniciador Respondedor Iniciador Respondedor
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
? T_Conn_Req | ? CR |
T_Conn_Resp ! CR ! T_Conn_Ind
CC
Espera CC Espera Resp
? T_Conn_Resp |
! CC
Conectado
53. Desistência de estabelecimento
Iniciador Respondedor Iniciador Respondedor
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
T_Disc_Req ? T_Conn_Req | ? CR |
T_Conn_Resp ! CR ! T_Conn_Ind
CC
Espera CC Espera Resp
? T_Disc_Req | ? T_Conn_Resp |
! DR ! CC
Ocioso Conectado
54. Desistência de estabelecimento
Iniciador Respondedor Iniciador Respondedor
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
T_Disc_Req ? T_Conn_Req | ? CR |
DR T_Conn_Resp ! CR ! T_Conn_Ind
Espera CC Espera Resp
? T_Disc_Req | ? T_Conn_Resp |
! DR ! CC
Ocioso Conectado
55. Desistência de estabelecimento
Iniciador Respondedor Iniciador Respondedor
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
T_Disc_Req ? T_Conn_Req | ? CR |
DR ! CR ! T_Conn_Ind
T_Disc_Ind
Espera CC Espera Resp
? T_Disc_Req | ? T_Conn_Resp |
! DR ! CC
Ocioso ? DR | Conectado
! T_Disc_Ind
56. Estudo: protocolo de transporte
Para facilitar a implementação, passa-se das
máquinas de estados finitos estendidas para tabelas
de estados
Tabelas de estados contém os eventos e os estados
Eventos chegam em determinados estados
57. Estudo: protocolo de transporte
Estado ocioso esperaCC conectado
Evento
T-Con.Req !CR
esperaCC
DR !T-Disc.Ind !T-Disc.Ind
ocioso ocioso
CC !T-Con.Con
conectado
T-Disc.Req !DR !DR
ocioso ocioso
Tabela de estados da Aplicação/Transporte
do transmissor
58. Estudo: protocolo de transporte
case estado
Estado ocioso esperaCC conectado ocioso:
Evento se evento = T-Con.Req
começo
T-Con.Req !CR
enviar CR;
esperaCC estado = esperaCC;
!T-Disc.Ind !T-Disc.Ind
fim
DR
ocioso ocioso
CC !T-Con.Con
conectado
T-Disc.Req !DR !DiscReq
ocioso ocioso
Tabela de estados da Aplicação/Transporte
do transmissor
59. Estudo: protocolo de transporte
case estado
Estado ocioso esperaCC conectado ocioso:
Evento se evento = T-Con.Req
começo
T-Con.Req !CR
enviar CR;
esperaCC estado = esperaCC;
!T-Disc.Ind !T-Disc.Ind
fim
DR
ocioso ocioso esperaCC:
case evento
CC !T-Con.Con
DR:
conectado
enviar T-Disc.Ind;
T-Disc.Req !DR !DR estado = ocioso;
ocioso ocioso
CC:
enviar T-Con.Con;
estado = conectado;
T-Disc.Req:
Tabela de estados da Aplicação/Transporte enviar DR;
estado = ocioso;
do transmissor
60. Estudo: protocolo de transporte
case estado
Estado ocioso esperaCC conectado esperaCC:
Evento
case evento
!ConReq
DR:
T-Con.Req
esperaCC
enviar T-Disc.Ind;
estado = ocioso;
DR !T-Disc.Ind !T-Disc.Ind CC:
ocioso ocioso enviar T-Con.Con;
estado = conectado;
CC !T-Con.Con T-Disc.Req:
conectado enviar DR;
estado = ocioso;
T-Disc.Req !DR !DR
ocioso ocioso
conectado:
se evento = DR
enviar T-Disc.Ind;
estado = ocioso;
Tabela de estados da Aplicação/Transporte senão
se evento = T-Disc.Req
do transmissor enviar DR;
estado = ocioso;
61. Estudo: protocolo de transporte
Estado ocioso espera conectado
Evento Resp
ConReq esperaResp
!T-Con.Ind
DiscReq ocioso ocioso
!T-Disc.Ind !T-Disc.Ind
T-Con.Resp conectado
!ConConf
T-Disc.Req ocioso ocioso
!DiscReq !DiscReq
Tabela de estados do Transporte/Aplicação
do receptor
62. Estudo: protocolo de transporte
case estado
Estado ocioso espera conectado ocioso:
Evento Resp se evento = ConReq
começo
ConReq esperaResp
estado = esperaResp;
!T-Con.Ind enviar T-Con.Ind;
ocioso ocioso
fim
DiscReq
!T-Disc.Ind !T-Disc.Ind
T-Con.Resp conectado
!ConConf
T-Disc.Req ocioso ocioso
!DiscReq !DiscReq
Tabela de estados do Transporte/Aplicação
do receptor
63. Estudo: protocolo de transporte
case estado
Estado ocioso espera conectado ocioso:
Evento Resp se evento = ConReq
começo
ConReq esperaCR
estado = espera CR;
!T-ConInd enviar T-Con.Ind;
ocioso ocioso
fim
DiscReq
!T-DiscInd !T-DiscInd esperaResp:
case evento
T-Con.Resp conectado
DiscReq:
!ConConf
estado = ocioso;
ocioso ocioso
enviar T-Disc.Ind;
T-Disc.Req
!DiscReq !DiscReq
T-Con.Resp:
estado = conectado;
enviar CC;
T-Disc.Req:
Tabela de estados do Transporte/Aplicação estado = ocioso;
enviar DiscReq;
do receptor
64. Estudo: protocolo de transporte
case estado
Estado ocioso esperaCR conectado esperaResp:
Evento
case evento
esperaCR
DiscReq:
ConReq
!T-Con.Ind
estado = ocioso;
enviar T-Disc.Ind;
DiscReq ocioso ocioso T-Con.Resp:
!T-Disc.Ind !T-Disc.Ind estado = conectado;
enviar CC;
T-Con.Resp conectado T-Disc.Req:
!ConConf estado = ocioso;
enviar DiscReq;
T-Disc.Req ocioso ocioso
conectado:
!DiscReq !DiscReq
se evento = DiscReq
estado = ocioso;
enviar T-Disc.Ind;
Tabela de estados do Transporte/Aplicação senão
se evento = T-Disc.Req
do receptor estado = ocioso;
enviar DiscReq;
65. Bibliografia
Tanenbaum – Capítulo 1
Kurose – Capítulo 1
L. F. G. Soares, G. Lemos e S. Colcher, “Redes
de Computadores: das LANs, MANs e WANs às
Redes ATM”, 2a edição, Editora Campus, 1995 –
Capítulos 1, 2, 3 e 5
W. Stallings, “Wireless Communications and
Networks”, Prentice Hall, 2002 – Capítulos 3 e 4
W. F. Giozza, J. F. M. de Araújo, J. A. B. Moura
e J. P. Sauvé, “Redes Locais de Computadores:
Tecnologia e Aplicações”, McGraw-Hill, 1986 –
Capítulos 1 e 2
66. Bibliografia
A. C. P. Pedroza, “Redes de Computadores:
Arquiteturas e Projetos de Protocolos”, Apostila
do GTA/UFRJ, 2001
O. C. M. B. Duarte, “Redes de Computadores”,
Apostila do GTA/UFRJ, 2004