You are on page 1of 30

Redes de Computadores

( 3. camada de transporte) Prof. Everthon Valado

Material baseado nos slides de: Dorgival G. (UFMG), Fbio C. (UFG) e Kurose

(ltima modificao: 27/01/2013)

Captulo 3: camada de transporte


Objetivos:

Resumo do captulo:
servios da camada de transporte multiplexao/demultiplexao transporte sem conexo: UDP princpios de transferncia confivel de dados transporte orientado conexo: TCP transferncia confivel controle de fluxo gerenciamento de conexo princpios de controle de congestionamento controle de congestionamento TCP
2

entender os princpios por trs dos servios da camada de transporte:


multiplexao/demultiplexao transferncia de dados confivel controle de fluxo controle de congestionamento

Redes de Computadores: camada de transporte

Protocolos e servios de transporte


Comunicao lgica entre aplicaes em diferentes hosts Servios executados nos sistemas finais Utilizam servio da camada de rede: transferncia de dados entre computadores (passo-a-passo)
transporte

aplicao eerede enlace fsica

rede enlace fsica

rede enlace fsica rede enlace fsica

a tr

rt po ns e gi l co

rede enlace fsica

m fi

rede enlace fsica aplicao rede enlace fsica

i -f -a

transporte

Redes de Computadores: camada de transporte

Protocolos da camada de transporte


Transporte na Internet: TCP: confivel, sequencial e unicast
congestionamento (congesto) controle de fluxo orientado a conexes
transporte

aplicao eerede enlace fsica

rede enlace fsica

rede enlace fsica rede enlace fsica

a tr

rt po ns e gi l co

UDP: no confivel (melhor esforo), no seqencial, entrega unicast or multicast Servios no disponveis:
tempo-real garantia de banda multicast confivel
Redes de Computadores: camada de transporte

rede enlace fsica

m fi

rede enlace fsica aplicao rede enlace fsica

i -f -a

transporte

Multiplexao de aplicaes
reunir dados de mltiplos processo de aplicao, juntar cabealhos com informaes para demultiplexao P3

Multiplexao:

Demultiplexao: entrega de segmentos recebidos aos processos de aplicao corretos

receptor
M M

dados da camada de aplicao cabealho do segmento segmento


Ht M

P4
M

P1
M

aplicao transporte rede

P2

Hn segmento

aplicao transporte rede

aplicao transporte rede

Redes de Computadores: camada de transporte

Multiplexao de aplicaes na Internet


baseada no nmero de porto do transmissor, nmero de porto do receptor e endereos IP
nmeros de porto de origem e destino em cada segmento
OBS.: portos com nmeros bemconhecidos so usados para aplicaes especficas valores abaixo de 1024, ex.: 80, 25, 110, 22, 23, etc. formato do segmento TCP/UDP 32 bits porto origem porto destino

outros campos de cabealho

dados de aplicao (mensagem)

Redes de Computadores: camada de transporte

Multiplexao: exemplos
host A
porto origem: x porto dest.: 25

servidor B

cliente Web host C

porto origem:25 porto dest.: x

porto origem: y porto dest.: 80

IP Origem: C IP Dest: B

porto origem: x porto dest.: 80

IP Origem: C IP Dest: B

aplicao SMTP
IP Origem: A IP Dest: B

cliente Web host A

porto origem : x porto dest.: 80

Servidor Web B aplicao: servidor Web

Redes de Computadores: camada de transporte

UDP: User Datagram Protocol [RFC 768]


protocolo de transporte sem frescuras, simples e rpido: sem conexo
no h aperto de mo inicial cada datagrama independente dos demais
Tamanho total em bytes do datagrama, incluindo o cabealho

32 bits porto destino checksum

porto origem tamanho

servio de melhor esforo, datagramas podem ser:


perdidos entregues fora de ordem entregues com erros

Dados de Aplicao (mensagem)

usos: multimdia, DNS, etc

formato do datagrama UDP


8

Redes de Computadores: camada de transporte

Checksum UDP
Objetivo: detectar erros nos dados transmitidos
Transmissor:
trata o contedo do segmento como inteiros de 16 bits calcula a soma do contedo do datagrama e faz-se o complemento de 1 no resultado (inverte os bits) coloca o valor calculado no campo de checksum computa o checksum do datagrama recebido (soma do contedo do datagrama) soma o checksum re-calculado com o checksum do datagrama: o resultado de -C+C deve ser zero NO - erro detectado SIM - no h erros detectados.

Receptor:

Redes de Computadores: camada de transporte

Transferncia confivel: abstrao


Servio de transferncia confivel Porm, sobre um canal no-confivel!

Redes de Computadores: camada de transporte

10

rdt1.0: sobre um canal confivel


Vamos estudar incrementalmente como prover um protocolo confivel de transferncia de dados (rdt) Numa primeira verso, se o canal confivel, ento:
transmissor envia dados para o canal subjacente receptor l os dados do canal subjacente (sem erros)

Redes de Computadores: camada de transporte

11

rdt2.0: canal com erros de bit


canal pode trocar valores dos bits em um pacote
lembrete: checksum pode detectar erros de bits

transmissor retransmite pacotes perdidos por erro a questo : como detectar que erros aconteceram:
reconhecimentos (ACKs): receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente reconhecimentos negativos (NAKs): receptor avisa explicitamente ao transmissor que o pacote chegou com erros

Redes de Computadores: camada de transporte

12

rdt2.0: problema
Mas o que acontece se o prprio ACK/NAK for corrompido?
transmissor no sabe o que aconteceu no receptor! mas ele no pode apenas retransmitir, pois geraria uma possvel duplicata

Tratando duplicatas:
transmissor acrescenta um nmero de sequncia em cada pacote transmissor reenvia o ltimo pacote se ACK/NAK for perdido receptor descarta pacotes duplicados (no passa para a aplicao)

para e espera
transmissor envia um pacote e ento espera pela resposta do receptor
Redes de Computadores: camada de transporte 13

rdt2.2: um protocolo sem NAK


para simplificar, ao invs de enviar NAK:
receptor re-envia ACK para o ltimo pacote recebido sem erro receptor inclui explicitamente o nmero de sequncia do pacote sendo reconhecido

ACKs duplicados no transmissor resultam na mesma ao do NAK: retransmisso do pacote posterior ao nmero de sequncia informado no ACK

Redes de Computadores: camada de transporte

14

rdt3.0: canais com erros e perdas


Mas como tratar perdas?
transmissor espera um tempo razovel pelo ACK
retransmite se nenhum ACK for recebido nesse tempo mas se o pacote (ou ACK) estiver apenas atrasado (no perdido):
retransmisso ser duplicata, mas os nmeros de sequncia j lidam com isso e a duplicata ser descartada por isso o receptor deve especificar o nmero de sequncia do ltimo pacote sendo reconhecido

Redes de Computadores: camada de transporte

15

rdt3.0 em ao: pacote perdido

Redes de Computadores: camada de transporte

16

rdt3.0 em ao: ACK perdido

Redes de Computadores: camada de transporte

17

rdt3.0 em ao: timeout precoce

Redes de Computadores: camada de transporte

18

Protocolos com paralelismo (pipelining)


Transmissor envia vrios pacotes ao mesmo tempo (em seguida, sem esperar que cada um seja reconhecido)
uma janela define e limita o grau de paralelismo

(a) operao do protocolo para-e-espera

(b) operao do protocolo com paralelismo

Redes de Computadores: camada de transporte

19

Transmission Control Protocol (TCP)


Servio orientado a conexo (circuito virtual) Confivel (deteco e correo de erros) Identificao de portos (multiplexao) Sequncia de bytes no estruturada (byte stream) Controle automtico de buffers Controle de fluxo
evita que o transmissor afogue o receptor

Controle de congestionamento
evita que o transmissor alague a rede
Redes de Computadores: camada de transporte 20

TCP: conexo com trs fases


Estabelecimento
Aplicaes devem reconhecer a nova conexo como nica e inconfundvel Pacotes de conexes anteriores no so podem ser tomados como pacotes vlidos

Transferncia de dados
Comunicao full-duplex (pode enviar e receber ao mesmo tempo) Envia os dados como uma sequncia de bytes

Trmino da conexo
Garante a entrega de todos os dados antes de fechar uma conexo a pedido da aplicao

Redes de Computadores: camada de transporte

21

Transmission Control Protocol (TCP)


Sequncia de bytes no estruturada (byte stream)
aplicao transmissora escreve bytes sequncia dividida em segmentos para o envio aplicao receptora l bytes Aplicao Escreve bytes Aplicao L bytes

TCP
buffer de envio

TCP
buffer de recebimento

Segmento

Segmento

Segmento
22

Transmitindo Segmentos
Redes de Computadores: camada de transporte

TCP: correo de erros


Usa confirmao positiva (ACK, acknowledgement)
OBS.: utiliza piggybacking (carona) no reconhecimento,
confirmaes so enviadas com os dados no sentido oposto

Dados podem ser recebidos fora de ordem Qualquer segmento recebido gera uma confirmao do ltimo byte recebido em ordem

Redes de Computadores: camada de transporte

23

TCP: cenrios de retransmisso


Host A
Seq=9 2, [ dados :

Host B
8 byte s]

temporizao

loss
Seq=9 2, [da do s: 8 b y tes]

=100 K C A

= AC K

100

tempo

cenrio com perda do ACK


Redes de Computadores: camada de transporte

24

TCP: cenrios de retransmisso


Host A
Seq=9 2, [da do

Host B
s: 8 b y t e s]
by tes ]

Seq=92 temp.

Seq= 1

00, [ dado

Seq=100 temp.

s : 20

0 10 = K 120 AC ACK=

Seq=9 2,

[dado

s: 8 b y te s ]

0 =12 K AC

tempo temporizao prematura,


ACKs cumulativos
Redes de Computadores: camada de transporte 25

Controle de fluxo
Evita que o transmissor sobrecarregue o receptor TCP um protocolo de transporte, no aplicao
se um dado confirmado ainda no foi usado, este dado precisa ficar no buffer at a aplicao l-lo um ACK significa somente que foi recebido at aquele byte se os ACKs chegarem, pode-se enviar mais dados infinitamente?

Soluo: um anncio de janela indica se o byte foi lido pelo destino


ex.: posso receber mais 4096 bytes (tamanho da janela) transmissor pode enviar dados somente se o anncio abre nova janela

Redes de Computadores: camada de transporte

26

Controle de congestionamento
Evita que os transmissores inundem a rede Desafios:
Determinar a capacidade para cada fonte Adaptar fluxos a variaes da capacidade
fonte 1 Roteador A destino 1 Roteador C fonte 2 Roteador B destino 2

fonte 3
Redes de Computadores: camada de transporte 27

Controle de congestionamento de TCP


Considera a rede como melhor-esforo
Transmisso acima da capacidade descartada

Usa realimentao implcita


Perda de pacotes considerada sinal de conteno (reduo de taxa)

ACKs controlam a transmisso (auto-temporizao)


Anncio de nova janela vem junto com ACKs e permite novos envios

Janela de transmisso: anncio & janela de congestionamento

Redes de Computadores: camada de transporte

28

H duas abordagens para este problema


Controle de congestionamento fim-a-fim:
no usa realimentao explcita da rede congestionamento inferido a partir das perdas e dos atrasos observados nos sistemas finais abordagem usada pelo TCP

Controle de congestionamento assistido pela rede:


roteadores enviam informaes para os sistemas finais no cabealho, h um bit nico indicando o congestionamento taxa explcita do transmissor poderia ser enviada

Redes de Computadores: camada de transporte

29

Resumo
princpios por trs dos servios da camada de transporte:
multiplexao/demultiplexao transferncia confivel controle de fluxo controle de congestionamento protocolos: UDP TCP

A seguir:
samos da borda da rede (camadas de aplicao e de transporte) vamos para o ncleo da rede (cama de rede e enlace)

Redes de Computadores: camada de transporte

30

You might also like