Escolar Documentos
Profissional Documentos
Cultura Documentos
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)
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
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
Máquinas de estados finitos
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)
Estabelecimento bem sucedido
Ocioso
Aguarda Aguarda
Conectado
Estabelecimento bem sucedido
T_Conn_Req
Ocioso
T_Conn_Req
Aguarda Aguarda
Conectado
Estabelecimento bem sucedido
T_Conn_Req
CR Ocioso
Aguarda Aguarda
Conectado
Estabelecimento bem sucedido
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Conn_Ind
Aguarda Aguarda
Conectado
Estabelecimento bem sucedido
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Conn_Resp
Aguarda Aguarda
T_Conn_Resp
Conectado
Estabelecimento bem sucedido
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Conn_Resp
CC
Aguarda Aguarda
Conectado
Estabelecimento bem sucedido
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Conn_Resp
CC
T_Conn_Conf Aguarda Aguarda
T_Conn_Conf
Conectado
Estabelecimento recusado
Ocioso
Aguarda Aguarda
Conectado
Estabelecimento recusado
T_Conn_Req
Ocioso
T_Conn_Req
Aguarda Aguarda
Conectado
Estabelecimento recusado
T_Conn_Req
CR Ocioso
Aguarda Aguarda
Conectado
Estabelecimento recusado
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Conn_Ind
Aguarda Aguarda
Conectado
Estabelecimento recusado
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Disc_Req
T_Disc_Req
Aguarda Aguarda
Conectado
Estabelecimento recusado
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Disc_Req
DR
Aguarda Aguarda
Conectado
Estabelecimento recusado
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Disc_Ind
T_Disc_Req
DR
T_Disc_Ind Aguarda Aguarda
Conectado
Desistência de estabelecimento
Ocioso
Aguarda Aguarda
Conectado
Desistência de estabelecimento
T_Conn_Req
Ocioso
T_Conn_Req
Aguarda Aguarda
Conectado
Desistência de estabelecimento
T_Conn_Req
CR Ocioso
Aguarda Aguarda
Conectado
Desistência de estabelecimento
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Conn_Ind
Aguarda Aguarda
Conectado
Desistência de estabelecimento
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Conn_Resp
Aguarda Aguarda
T_Conn_Resp
Conectado
Desistência de estabelecimento
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Conn_Resp
CC
Aguarda Aguarda
Conectado
Desistência de estabelecimento
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Disc_Req T_Disc_Req
T_Conn_Resp
CC
Aguarda Aguarda
Conectado
Desistência de estabelecimento
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Disc_Req
DR T_Conn_Resp
Aguarda Aguarda
Conectado
Desistência de estabelecimento
T_Conn_Req
CR Ocioso
T_Conn_Ind
T_Disc_Req
DR
T_Disc_Ind
Aguarda Aguarda
T_Disc_Ind
Conectado
Estudo de caso: transporte
Ocioso Ocioso
Estabelecimento bem sucedido
T_Conn_Req
Ocioso Ocioso
? T_Conn_Req |
! CR
Espera CC
Estabelecimento bem sucedido
T_Conn_Req
CR Ocioso Ocioso
? T_Conn_Req |
! CR
Espera CC
Estabelecimento bem sucedido
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
? T_Conn_Req | ? CR |
! CR ! T_Conn_Ind
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
? T_Conn_Req | ? CR |
T_Conn_Resp ! CR ! T_Conn_Ind
? T_Conn_Resp |
! CC
Conectado
Estabelecimento bem sucedido
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
Estabelecimento bem sucedido
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
? T_Conn_Req | ? CR |
T_Conn_Resp ! CR ! T_Conn_Ind
CC
T_Conn_Conf Espera CC Espera Resp
? CC | ? T_Conn_Resp |
! T_Conn_Conf ! CC
Conectado Conectado
Estabelecimento recusado
Ocioso Ocioso
Estabelecimento recusado
T_Conn_Req
Ocioso Ocioso
? T_Conn_Req |
! CR
Espera CC
Estabelecimento recusado
T_Conn_Req
CR Ocioso Ocioso
? T_Conn_Req |
! CR
Espera CC
Estabelecimento recusado
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
? T_Conn_Req | ? CR |
! CR ! T_Conn_Ind
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
? T_Conn_Req | ? CR |
T_Disc_Req ! CR ! T_Conn_Ind
? T_Disc_Req |
! DR
Ocioso
Estabelecimento recusado
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
? T_Conn_Req | ? CR |
T_Disc_Req ! CR ! T_Conn_Ind
DR
Espera CC Espera Resp
? T_Disc_Req |
! DR
Ocioso
Estabelecimento recusado
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
? T_Conn_Req | ? CR |
T_Disc_Req ! CR ! T_Conn_Ind
DR
T_Disc_Ind Espera CC Espera Resp
? DR | ? T_Disc_Req |
! T_Disc_Ind ! DR
Ocioso Ocioso
Desistência de estabelecimento
Ocioso Ocioso
Desistência de estabelecimento
T_Conn_Req
Ocioso Ocioso
? T_Conn_Req |
! CR
Espera CC
Desistência de estabelecimento
T_Conn_Req
CR Ocioso Ocioso
? T_Conn_Req |
! CR
Espera CC
Desistência de estabelecimento
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
? T_Conn_Req | ? CR |
! CR ! T_Conn_Ind
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
? T_Conn_Req | ? CR |
T_Conn_Resp ! CR ! T_Conn_Ind
? T_Conn_Resp |
! CC
Conectado
Desistência de estabelecimento
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
Desistência de estabelecimento
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
Desistência de estabelecimento
T_Conn_Req
CR Ocioso Ocioso
T_Conn_Ind
T_Disc_Req ? T_Conn_Req | ? CR |
DR T_Conn_Resp ! CR ! T_Conn_Ind
? T_Disc_Req | ? T_Conn_Resp |
! DR ! CC
Ocioso Conectado
Desistência de estabelecimento
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
Estudo: protocolo de transporte
T-Con.Req !CR
esperaCC
DR !T-Disc.Ind !T-Disc.Ind
ocioso ocioso
CC !T-Con.Con
conectado
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
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
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;
Estudo: protocolo de transporte
ConReq esperaResp
!T-Con.Ind
T-Con.Resp conectado
!ConConf
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
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
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;
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
Bibliografia