rgs rd d c td redes de computadores f nível de transporteasc/redes/pdf/aula21.pdf · rd d c td f...

8
R d d C td FRGS Redes de Computadores ca - UF Nível de Transporte S i i td ã ormátic Serviços orientados a conexão de Info tituto d Inst 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 UFRGS Modelos de serviços Não orientados a conexão Orientados a conexão rmática - U Garantia de entrega, de ordem, não duplicação e sem erros Conceito fundamental: conexão -17 uto de Info arissimi -19-jun- Institu Redes de Computadores 2 A. Ca 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 UFRGS Provê um serviço confiável Garantia de entrega, de ordem, não duplicação e sem erros Conexão é bidirecional rmática - U -17 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 Info arissimi -19-jun- 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 Institu Redes de Computadores 3 A. Ca 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, UFRGS identificadores de conexão) Pode ser de dois tipos rmática - 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 Info arissimi -19-jun- Uma entidade (servidor) espera por pedidos de estabelecimento de conexão (passivo) Simétrica Institu Redes de Computadores 4 A. Ca As entidades podem podem iniciar ou receber pedidos de conexão

Upload: others

Post on 31-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

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