RGS Rd d C td Redes de Computadores F Nível de Transporteasc/redes/pdf/2016-02/aula23.pdf · FRGS...

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 23 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 -15 uto de Info arissimi -18-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 -15 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 -18-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 -15 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 -18-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

Transcript of RGS Rd d C td Redes de Computadores F Nível de Transporteasc/redes/pdf/2016-02/aula23.pdf · FRGS...

Page 1: RGS Rd d C td Redes de Computadores F Nível de Transporteasc/redes/pdf/2016-02/aula23.pdf · FRGS Garantia de entrega, de ordem, não duplicação e sem erros Conexão é bidirecional

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 23

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

-15

uto

de In

foar

issi

mi -

18-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

5

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 -

18-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

-15

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 -

18-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

Page 2: RGS Rd d C td Redes de Computadores F Nível de Transporteasc/redes/pdf/2016-02/aula23.pdf · FRGS Garantia de entrega, de ordem, não duplicação e sem erros Conexão é bidirecional

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

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ãopedido de conexão

SYN

mentoActive open

Closed

P i (li t )

Closed

UFR

GS

SYN

Estab

elecim

Active open Passive open (listen)

Estados associadosEstados associados

rmát

ica

-U-1

5

E

SYNo

Closed ClosedSimétrico

A B

Estados associadosClosedActive openPassive open (listen)

Estados associadosClosedActive openPassive open (listen)

uto

de In

foar

issi

mi -

18-ju

n- SYN

SYN

belec

imen

to

Active open Active open

Passive open (listen)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 associadosEstados associados

rmát

ica

-U-1

5

SN = 1

SN=1 ACKncia

Estados associadosEstablished

Estados associadosEstablished

uto

de In

foar

issi

mi -

18-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

5

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 -

18-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

-15

implícito Fim

dadosPerda

Handshake

uto

de In

foar

issi

mi -

18-ju

n- implícito Fim

Simétrico( há d d t d it

Assimétrico

2 mensagensEstados associados

Close waitEstados 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 waitClosedFin waitClosed

Page 3: RGS Rd d C td Redes de Computadores F Nível de Transporteasc/redes/pdf/2016-02/aula23.pdf · FRGS Garantia de entrega, de ordem, não duplicação e sem erros Conexão é bidirecional

Diagrama de estados de conexãogU

FRG

Srm

átic

a -U

-15

uto

de In

foar

issi

mi -

18-ju

n-In

stitu

Redes de Computadores 9

A. C

aConexão na presença de erros: problemasp ç p

Problemas durante uma conexão 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)

Números de sequência são usados para controle de fluxo e de erro

rmát

ica

-Un-

15

QUESTÃO: como se define o número de sequência inicial ? Opção I: A partir de um valor fixo predefinido (e.g. SN=1)

O II N i d l SN i i i l d

uto

de In

foar

issi

mi -

18-ju

in Opção II: Negociando um valor para o SN inicial da conexão

Inst

itu

Redes de Computadores 10

A. C

a

Conexão na presença de erros: problemasp ç p

Além do controle de erro e de fluxo (aula passada) há outros problemas que podem ocorrer durante uma conexão

T f ê i d d d T PDU d d d d õ t i h Transferência de dados: T-PDUs de dados de conexões anteriores chegam atrasadas

Estabelecimento da conexão: perda ou atraso de T-PDUs SYN

UFR

GS

p Encerramento da conexão: T-PDU de dados chega após pedido de

encerramento (atraso)

rmát

ica

-Un-

15

Lembrando que: Números de sequência auxiliam no controle de erro e fluxo Questão associada: como definir o número de sequência inicial ?

uto

de In

foar

issi

mi -

18-ju

in Questão associada: como definir o número de sequência inicial ? Proposta inicial: começar sempre com o valor 1

Inst

itu

Redes de Computadores 11

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.

rmát

ica

-Un-

15

Solução: Iniciar cada conexão com um número de

sequência a partir do último da conexão mais recente

uto

de In

foar

issi

mi -

18-ju

in recente TPDUs SYN incluem números de sequência

SYN iAceita antigo

Inst

itu

Redes de Computadores 12

A. C

a Aceita antigoDescarta novo

Page 4: RGS Rd d C td Redes de Computadores F Nível de Transporteasc/redes/pdf/2016-02/aula23.pdf · FRGS Garantia de entrega, de ordem, não duplicação e sem erros Conexão é bidirecional

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-

15

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 -

18-ju

in

B pensa que está abrindo conexão que espera números de sequência a partir de i e d ti d j A id ã é k j A h T PDU

Inst

itu

Redes de Computadores 13

A. C

a 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!!

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-

15

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 -

18-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 14

A. C

a

Three Way Handshake: Exemplosy p

UFR

GS

rmát

ica

-Un-

15ut

o de

Info

aris

sim

i -18

-juin

Inst

itu

Redes de Computadores 15

A. C

a

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-

15

Solução: numerar T-PDUs FINPERDA !!!

uto

de In

foar

issi

mi -

18-ju

in SN i (de i até m)

(FIN m+1)Espera dados chegarem antesde encerrar a conexão

Inst

itu

Redes de Computadores 16

A. C

a ( )de encerrar a conexão.Posterga

encerramento!

Page 5: RGS Rd d C td Redes de Computadores F Nível de Transporteasc/redes/pdf/2016-02/aula23.pdf · FRGS Garantia de entrega, de ordem, não duplicação e sem erros Conexão é bidirecional

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+1

rmát

ica

-Un-

15

...

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 -

18-ju

in Envia ACK y 1Recebe ACK=y+1

y

Inst

itu

Redes de Computadores 17

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-

15

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 -

18-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 18

A. C

a

Segmento 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 pointerAckUrgent pointerAck Gerenciamento da conexão Source Port Destination Port

Hlen Flags Window

Sequence NumberAcknowledgment Number

AckPushRstSyn

AckPushRstSyn

UFR

GS

Hlen Flags WindowChecksum Urgent Pointer

Options+padding

SynFinSynFin

Cabeçalho TCPCabeçalho IP

Cabeçalho 802.3

rmát

ica

-Un-

15

Data

uto

de In

foar

issi

mi -

18-ju

in

PDU – Protocol Data UnitÁ d d d 802 3Área de dados IP

Área de dados TCP

Inst

itu

Redes de Computadores 19

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 segmentoU

FRG

S 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-

15

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 -

18-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 20

A. C

a

Page 6: RGS Rd d C td Redes de Computadores F Nível de Transporteasc/redes/pdf/2016-02/aula23.pdf · FRGS Garantia de entrega, de ordem, não duplicação e sem erros Conexão é bidirecional

...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

Options

UFR

GS

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-

15

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 -

18-ju

in sempre um número inteiro de palavras de 32 bits.

Inst

itu

Redes de Computadores 21

A. C

aEstabelecimento 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

5

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 -

18-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 22

A. C

a recebe SEQ=x+1, ACK y+1

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-

15

“abre” de acordo com as confirmações do receptor Reajustada ainda com o controle de congestionamento (aula passada)

uto

de In

foar

issi

mi -

18-ju

in O tamanho da janela pode ser renegociado durante a fase de transferência de dados

Inst

itu

Redes de Computadores 23

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

5

ACK x+1

SN té 1Dados

uto

de In

fo dados que porventura ainda estejam em trânsito

aris

sim

i -18

-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 24

A. C

a Segue exatamente o comportamente visto anteriormente ACK y+1

Page 7: RGS Rd d C td Redes de Computadores F Nível de Transporteasc/redes/pdf/2016-02/aula23.pdf · FRGS Garantia de entrega, de ordem, não duplicação e sem erros Conexão é bidirecional

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-

15

Time-out (SN=i, m)

(SN=i, m)

uto

de In

foar

issi

mi -

18-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 25

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 ( ),

-15

uto

de In

foar

issi

mi -

18-ju

n-In

stitu

Redes de Computadores 26

A. C

a

UFR

GS

rmát

ica

-Un-

15ut

o de

Info

aris

sim

i -18

-juin

Inst

itu

Redes de Computadores 27

A. C

a

UFR

GS

rmát

ica

-Un-

15ut

o de

Info

aris

sim

i -18

-juin

Inst

itu

Redes de Computadores 28

A. C

a

Page 8: RGS Rd d C td Redes de Computadores F Nível de Transporteasc/redes/pdf/2016-02/aula23.pdf · FRGS Garantia de entrega, de ordem, não duplicação e sem erros Conexão é bidirecional

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

5 [ACK] seq=24 ack=11

USER asc.. (10 bytes)(5)

(6)

uto

de In

fo

ssim

i -18

-juin

-15 [ACK] seq=24, ack=11

(7)

Inst

itu

Redes de Computadores 29

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-

15

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 -

18-ju

inIn

stitu

Redes de Computadores 30

A. C

a