Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
R d d C t d
FRG
S Redes de Computadores
ca -
UF
Nível de TransporteS i i t d ã
orm
átic Serviços orientados a conexão
de In
fotit
uto
dIn
st Aula 21
Introduçãoç
Entidades da camada de transporte disponibilizam serviços para a camada de nível superior
N d l d f ê i MR OSI é d d ã it t No modelo de referência MR-OSI é para a camada de sessão, na arquitetura TCP/IP é para a camada de aplicação
Modelos de serviços
UFR
GS
Modelos de serviços Não orientados a conexão Orientados a conexão
rmát
ica
-U Garantia de entrega, de ordem, não duplicação e sem erros Conceito fundamental: conexão
-17
uto
de In
foar
issi
mi -
19-ju
n-In
stitu
Redes de Computadores 2
A. C
a
Serviço orientado a conexãoç
Conexão é composta por três fases Estabelecimento
T f ê i Transferência Encerramento
Provê um serviço confiável
UFR
GS
Provê um serviço confiável Garantia de entrega, de ordem, não duplicação e sem erros
Conexão é bidirecional
rmát
ica
-U-1
7
Conexão é bidirecional Modelado por uma máquina de estado finito
T-PDUs de controle são os eventos que fazem passar de um estado a outro
uto
de In
foar
issi
mi -
19-ju
n- T PDUs de controle são os eventos que fazem passar de um estado a outro Estados básicos: closed, active open, passive open, established, wait close,
fin close
Inst
itu
Redes de Computadores 3
A. C
a
Conexão: estabelecimento
Estabelecimento da conexão Garante que entidade de transporte correspondente existe
N i â t ( T h T PDU id d d ã Negocia parâmetros (ex.: Tamanho T-PDUs, capacidade de recepção, número de sequência, QoS etc)
Reserva recursos nas entidades de transportes envolvidas (ex.: buffers, U
FRG
S
p ( ,identificadores de conexão)
Pode ser de dois tiposrm
átic
a -U
-17
Assimétrica (modelo cliente-servidor) Uma entidade (cliente) solicita o estabelecimento da conexão (ativo) Uma entidade (servidor) espera por pedidos de estabelecimento de
uto
de In
foar
issi
mi -
19-ju
n- Uma entidade (servidor) espera por pedidos de estabelecimento de conexão (passivo)
Simétrica
Inst
itu
Redes de Computadores 4
A. C
a
As entidades podem podem iniciar ou receber pedidos de conexão
Estabelecimento de conexões: two-way handshakey
T-PDU de controle SYN funcionacomo solicitação de abertura de conexão e como confirmação de um
Modelo cliente-servidor (assimétrico)
Ativo Passivopedido de conexão
SYN
mentoActive open
Closed
P i (li t )
Closed
UFR
GS
SYN
Estab
elecim
Active open Passive open (listen)
Estados associados
rmát
ica
-U-1
7
E
SYNo
Closed ClosedSimétrico
A B
Estados associadosClosedActive openPassive open (listen)
uto
de In
foar
issi
mi -
19-ju
n- SYN
SYN
belec
imen
to
Active open Active open
Passive open (listen)
Inst
itu
Redes de Computadores 5
A. C
a
Esta
Fase de transferência de dados
Corresponde ao estado “estabelecido” (established) Fase que realiza o controle de fluxo e o controle de erros
Baseado no envio e recebimentos de T-PDUs com números de sequência Confirmações positivas e negativas (possível)
UFR
GS SYN
SYNEstados associados
rmát
ica
-U-1
7
SN = 1
SN=1 ACKncia
Estados associadosEstablished
uto
de In
foar
issi
mi -
19-ju
n- SN=1, ACK
SN = 101, ACK
trans
ferên
ACK em piggybacking
Inst
itu
Redes de Computadores 6
A. C
a
Encerramento de uma conexão
Objetivo é liberar os recursos alocados para a conexão Qualquer lado pode pedir o encerramento Duas formas:
Simétrico: entidade ao encerrar a conexão indica apenas que não tem mais dados a enviar mas ainda está aceitando dados do outro
UFR
GS
dados a enviar, mas ainda está aceitando dados do outro Conexão só é encerrada se ambos os lados concordarem Não há perda de dados
rmát
ica
-U-1
7
Não há perda de dados Encerramento gracioso (graceful)
Assimétrico: entidade encerra a conexão independentemente do outro lado
uto
de In
foar
issi
mi -
19-ju
n-
Pode haver perdas de dados Associados com estados close wait, fin wait, closed
Inst
itu
Redes de Computadores 7
A. C
a
Estratégias para encerramento de conexãog p
A B A B A BFIN A B
T-PDU de controle FIN para encerrar a conexão
1 2 3
eout
FINFIN
FIN
FIN
dadosreset
UFR
GS
time
FIN FINrm
átic
a -U
-17
implícito Fim
dadosPerda
Handshake
uto
de In
foar
issi
mi -
19-ju
n- implícito Fim
Simétrico( há d d t d it
Assimétrico
2 mensagensEstados associados
Close wait
Inst
itu
Redes de Computadores 8
A. C
a (se há dados, antes de aceitar desconexão, envia os dados)
(pode provocar perda de dados)Fin waitClosed
Diagrama de estados de conexãogU
FRG
Srm
átic
a -U
-17
uto
de In
foar
issi
mi -
19-ju
n-In
stitu
Redes de Computadores 9
A. C
aConexão na presença de erros: problemasp ç p
Problemas possíveis Transferência de dados: T-PDUs de dados de conexões anteriores chegam
atrasadas atrasadas Estabelecimento da conexão: perda ou atraso de T-PDUs SYN Encerramento da conexão: T-PDU de dados chega após pedido de
UFR
GS
g p pencerramento (atraso)
Lembrando que:
rmát
ica
-Un-
17
Números de sequência auxiliam no controle de erro e fluxo Questão associada: como definir o número de sequência inicial ? Proposta inicial: começar sempre com o valor 1
uto
de In
foar
issi
mi -
19-ju
in Proposta inicial: começar sempre com o valor 1
Inst
itu
Redes de Computadores 10
A. C
a
Problema I: T-PDU de dados de conexões anteriores
Problema: Problema: T-PDU de uma conexão i chega em uma
conexão j (posterior a i)
Consequência: T-PDU da conexão i pode ser aceita como
UFR
GS
T PDU da conexão i pode ser aceita como uma T-PU da conexão j por ter um número de sequência que pode ser aceito.
T-PDU correta (conexão j) é descartada
rmát
ica
-Un-
17
Solução: Iniciar cada conexão com um número de
( j)
uto
de In
foar
issi
mi -
19-ju
in Iniciar cada conexão com um número de sequência a partir do último da conexão mais recente
TPDUs SYN incluem números de sequênciaAceita antigo
Inst
itu
Redes de Computadores 11
A. C
a q SYN i
Aceita antigoDescarta novo
Problema II: atraso na T-PDU de controle SYN
T-PDU que chega atrasado é um T-PDU SYN i
Visão do A
SYN k
Visão do B
SYN i
UFR
GS
SYN j SYN j
Conexão com números C ã ú
rmát
ica
-Un-
17
Conexão com números de sequência k e j
Conexão com números de sequência k e j
uto
de In
foar
issi
mi -
19-ju
in
B pensa que está abrindo conexão que espera números de sequência a partir de i e responde a partir de j. A considera que a conexão é com k e j. Ao chegar T-PDU com k, B descarta como erro por não pertencer a conexão negociada OU se houver uma
Inst
itu
Redes de Computadores 12
A. C
a k, B descarta como erro por não pertencer a conexão negociada OU se houver uma sobreposição pode aceitar como recebimento fora de ordem.
Three-way handshakey
Solução para problema do two-way handshake Formalmente provado que a troca de 3 mensagens é condição necessária e
suficiente para assegurar um acordo não ambíguo entre duas partessuficiente para assegurar um acordo não ambíguo entre duas partes Mesmo considerando perdas, duplicação e atrasos
UFR
GS
envia SYN seq=x
A BConsiste em cada lado confirmar o recebimento da T-PDU de abertura de conexão e seu número de
rmát
ica
-Un-
17
envia SYN seq x
recebe SYNenvia SYN seq=y, ACK x+1
de conexão e seu número de sequência.
uto
de In
foar
issi
mi -
19-ju
in recebe SYN seq=y, ACK x+1 envia SEQ x+1, ACK y+1
recebe SEQ=x+1, ACK y+1
Inst
itu
Redes de Computadores 13
A. C
aThree Way Handshake: Exemplosy p
SYN i
Chegada de requisição abertura conexãoB aceita pedido de conexão
A B
A confirma conexão e inicia transmissão
UFR
GS
SYN i
Chegada de requisição obsoletaB acredita que é novo pedido e aceita
A B
rmát
ica
-Un-
17
B acredita que é novo pedido e aceita
A rejeita e reseta pedido conexãoA B
uto
de In
foar
issi
mi -
19-ju
in
Chegada de requisição SYN+ACK obsoleta que se confunde como
t b t d ã (SYN i)
Inst
itu
Redes de Computadores 14
A. C
a resposta a abertura de conexão (SYN i).
Problema III: encerramento de conexão
Baseado em duas T-PDUs FIN (two way handshake) Apresenta problemas similares ao estabelecimento da conexão
Perdas de T-PDUs e T-PDUs atrasadas
SN i (i até m)
UFR
GS
SN i (i até m)FIN
rmát
ica
-Un-
17
Solução: numerar T-PDUs FINPERDA !!!
uto
de In
foar
issi
mi -
19-ju
in SN i (de i até m)
(FIN m+1)Espera dados chegarem antesde encerrar a conexão
Inst
itu
Redes de Computadores 15
A. C
a ( )de encerrar a conexão.Posterga
encerramento!
Four way handshake: encerramento de conexão simétricoy
Antes de receber a confirmação do encerramento (T-PDU FIN da outra entidade) ainda recebe T-PDUs de dados
FIN seq =x
Recebe FIN seq = x
Four-way handshakeFIN x
UFR
GS
Recebe FIN seq = xEnvia ACK = x+1
Recebe ACK = x + 1Dados
ACK x+1rm
átic
a -U
n-17
...
Recebe FIN seq=y ACK=x+1Envia ACK=y+1
Envia FIN seq = y ACK = x+1SN n até y-1FIN y
ACK y+1
uto
de In
foar
issi
mi -
19-ju
in Envia ACK y 1Recebe ACK=y+1
y
Inst
itu
Redes de Computadores 16
A. C
a
Pode ser feito piggybacking (FIN + ACK) se não houver dados
Estudo de caso: Transmission Control Protocol (TCP)abertura e encerramento de conexãoabertura e encerramento de conexão
Protocolo orientado a conexão da Internet Descrito nas RFCs 793, 1122, 1323, 2018 e 2581 PDU do TCP é denominada de segmento
Mensagens geradas por processos são fragmentadas em segmentos TCP
UFR
GS
Abordagem baseada em fluxo de dados (data stream) Trata os dados como uma cadeia continua de bytes
D id b t t
rmát
ica
-Un-
17
Decide como agrupar os bytes em segmentos Fornece comunicação confiável ponto a ponto entre dois processos
Cada conexão TCP envolve exatamente duas extremidades
uto
de In
foar
issi
mi -
19-ju
in Cada conexão TCP envolve exatamente duas extremidades Envio pode ocorrer entre uma ou outra direção de uma mesma conexão TCP
Inst
itu
Redes de Computadores 17
A. C
aSegmento TCP (relembrando...)g ( )
32 bit Controle de erro e fluxo Garantia de entrega e de ordem Gerenciamento da conexão Source Port Destination Port
32 bitsIP Header
Urgent pointerAck Gerenciamento da conexão Source Port Destination Port
Hlen Flags Window
Sequence NumberAcknowledgment Number
AckPushRstSyn
UFR
GS
Hlen Flags WindowChecksum Urgent Pointer
Options+padding
SynFin
Cabeçalho TCPCabeçalho IP
Cabeçalho 802.3
rmát
ica
-Un-
17
Data
uto
de In
foar
issi
mi -
19-ju
in
PDU – Protocol Data UnitÁ d d d 802 3Área de dados IP
Área de dados TCP
Inst
itu
Redes de Computadores 18
A. C
a PDU – Protocol Data UnitÁrea de dados 802.3
Os campos hlen, flags...p , g
Hlen Fornece o tamanho do cabeçalho TCP em múltiplos de 4 bytes (palavra)
Ti i t l 5 (20 b t ) t d há ti Tipicamente assume o valor 5 (20 bytes), exceto quando há options Flags
Indica o propósito e o tipo do segmento
UFR
GS
Indica o propósito e o tipo do segmento URG: segmento transporta dados urgentes ACK: segmento transporta uma confirmação positiva
rmát
ica
-Un-
17
g p ç p PSH: mecanismo push foi adotado no envio do segmento (≡ flush buffer) RST: a conexão deve ser imediatamente abortada (reset)
uto
de In
foar
issi
mi -
19-ju
in SYN: segmento transporta requisição de abertura de conexão FIN: segmento transporta requisição de encerramento da conexão
Inst
itu
Redes de Computadores 19
A. C
a
...checksum, options e padding, p p g
Checksum Verificação da integridade dos dados (complemento de 1 em 16 bits)
C l l d b d b lh (IP d ti IP f t t l Calculado sobre um pseudo-cabeçalho (IP destino, IP fonte, campo protocolo, tamanho da T-PDU e a constante zero), o cabeçalho TCP e os dados
OptionsU
FRG
S
Options Lista variável de informações e parâmetros para o TCP Usado principalmente para definir o tamanho máximo de um segmento (MSS)
rmát
ica
-Un-
17
Padding Usado para “arrendondar” o número de bytes do cabeçalho para este ter
ú i i d l d 32 bi
uto
de In
foar
issi
mi -
19-ju
in sempre um número inteiro de palavras de 32 bits.
Inst
itu
Redes de Computadores 20
A. C
a
Estabelecimento da conexão
Emprega o conceito de threeway handshake Idêntico ao visto anteriormente
Negocia parâmetros para a conexão Maximum Segment Size (MSS) Tamanho da janela de recepção (campo window)
UFR
GS
Tamanho da janela de recepção (campo window)
A BLembrando... após abertura da
rmát
ica
-U-1
7
envia SYN seq=x
recebe SYNenvia SYN seq=y ACK x+1
pconexão, segue a fase de transferência onde são feitos os controles de fluxo e de erro (aula passada)
uto
de In
foar
issi
mi -
19-ju
n- envia SYN seq=y, ACK x+1
recebe SYN seq=y, ACK x+1 envia SEQ x+1, ACK y+1
Inst
itu
Redes de Computadores 21
A. C
a recebe SEQ=x+1, ACK y+1Segue exatamente o comportamente visto anteriormente
Campo windowp
Define a capacidade do buffer de recepção Tamanho da janela, i.e., quantidade de créditos
Controle de fluxo do TCP ajusta as janelas de transmissão e recepção Janela de recepção “fecha” a medida que bytes são recebidos e “abre” quando os dados são
UFR
GS
fecha a medida que bytes são recebidos e abre quando os dados são lidos pela aplicação (modelo PULL)
Janela de transmissão
rmát
ica
-Un-
17
“abre” de acordo com as confirmações do receptor Reajustada ainda com o controle de congestionamento (aula passada)
uto
de In
foar
issi
mi -
19-ju
in O tamanho da janela pode ser renegociado durante a fase de transferência de dados
Inst
itu
Redes de Computadores 22
A. C
a
Encerramento de conexões TCP
Encerramento completo Estratégia three-way handshake
S ê i FIN FIN ACK FIN
FIN x
FIN y ACK=x+1
Sequência FIN; FIN+ACK; FIN
S if h t
ACK y+1
UFR
GS
Semifechamento Estratégia four-way handshake Sequência FIN; ACK; FIN; ACK FIN x
rmát
ica
-U Sequência FIN; ACK; FIN; ACK A entidade que iniciou o encerramento, fecha a
conexão para o envio de novos dados, mas aceita d d i d j â i-1
7
ACK x+1
SN té 1Dados
uto
de In
fo dados que porventura ainda estejam em trânsito
aris
sim
i -19
-jun-
S t t t t i t t i t
...FIN y ACK=x+1
SN n até y-1
Inst
itu
Redes de Computadores 23
A. C
a Segue exatamente o comportamente visto anteriormente ACK y+1
TCP: Recuperação de falhas (crash recovery)p ç ( y)
Em caso de falhas as informações de estado de uma conexão sãoperdidas por um lado, o outro mantém meia-conexão
N á i “li ” lib d it i t d i t i l
CRASH CRASH
Necessário “limpar” e liberar os descritores internos do sistema operacional
UFR
GS Time-out (SN=i, m) (SN=i, m)
Time-outREBOOT
rmát
ica
-Un-
17
Time-out (SN=i, m)
(SN=i, m)
uto
de In
foar
issi
mi -
19-ju
in Time-out (SN=i, m) (RST i)
Reseta a meia conexão por excesso de Reseta a meia conexão por receber1 2
Inst
itu
Redes de Computadores 24
A. C
a Reseta a meia conexão por excesso deretransmissões
Reseta a meia conexão por recebercomando de reset (RST)
1 2
Exemplos de conexão TCP com wiresharkp
Exemplo 1: navegação web (protocolo HTTP) Abertura da conexão: linhas 1, 2 e 3
T f ê i ( i i ã t HTTP) li h 4 5 7 Transferência (requisição e resposta HTTP) : linhas 4, 5 e 7 Encerramento da conexão: linhas 6 e 17
Exemplo 2: sessão FTP
UFR
GS
Exemplo 2: sessão FTP Abertura linhas 1, 2 e 3 Transferências requisições FTP: usuário, password (em claro!!!), etc
rmát
ica
-U
q ç , p ( ),
-17
uto
de In
foar
issi
mi -
19-ju
n-In
stitu
Redes de Computadores 25
A. C
a
UFR
GS
rmát
ica
-Un-
17ut
o de
Info
aris
sim
i -19
-juin
Inst
itu
Redes de Computadores 26
A. C
a
UFR
GS
rmát
ica
-Un-
17ut
o de
Info
aris
sim
i -19
-juin
Inst
itu
Redes de Computadores 27
A. C
a
Dissecando a sessão FTP
Cliente 192 168 0 118 Servidor x y 11 3
[SYN] seq=0 MSS=1460(1)
Cliente 192.168.0.118 Servidor x.y.11.3
[SYN, ACK] seq=0, ack=1, W=5840, MSS=1460
[ACK] seq=1, ack=1(2)
(3)Segmento TCP com PDU do
Janela de recepção
UFR
GS
[ACK] seq=1, ack=24
220 FTP server ready... (23 bytes)17520
17497(4)
(5)
protocolo ftp, que são strings-23 bytes
rmát
ica
-U
7 [ACK] seq=24 ack=11
USER asc.. (10 bytes)(5)
(6)
uto
de In
fo
ssim
i -19
-juin
-17 [ACK] seq=24, ack=11
(7)
Inst
itu
Redes de Computadores 28
A. C
aris
(n) : n é o número da linha da sessão de wireshark da página anterior
Leituras complementaresp
Stallings, W. Data and Computer Communications (6th edition), Prentice Hall 1999.
C ít l 17 ã 17 2 Capítulo 17, seção 17.2 Tanenbaum, A. Redes de Computadores (4a edição), Campus,
2000
UFR
GS
2000. Capítulo 6, seções 6.1., 6.2, 6.4 e 6.5 (até 6.5.8)
Carissimi A ; Rochol J; Granville L Z; Redes de Computadores
rmát
ica
-Un-
17
Carissimi, A.; Rochol, J; Granville, L.Z; Redes de Computadores. Série Livros Didáticos. Bookman 2009. Capítulo 6, seções 6.2, 6.3, 6.4, 6.5 e 6.6
uto
de In
foar
issi
mi -
19-ju
inIn
stitu
Redes de Computadores 29
A. C
a