Академический Документы
Профессиональный Документы
Культура Документы
Nossos objetivos:
Entenda os princpios
por trs dos servios
da camada de
transporte:
multiplexao/demulti
plexao
Transferncia de
dados confivel
controle de fluxo
Controle de
congestionamento
da camada de transporte
na Internet:
Transport Layer
3-1
Sumrio do cap. 3
3.1 Servios da
Camada de Transporte
3.2 Multiplexao e
demultiplexao
3.3 Transporte sem
conexo: UDP
a conexo: TCP
Estrutura do segmento
Transferncia de dados
confivel
Controle de fluxo
Gerenciamento da
conexo
3.5 Controle de
congestionamento TCP
Transport Layer
3-2
comunicao lgica
entre processos de aplicao
rodando em diferentes hosts
Protocolos de transporte
rodando em hosts
Lado tx: quebra
mensagens de aplicao em
segmentos, passa pra
camada de rede
Lado rx: remonta
segmentos em mensagens,
passa pra camada de
aplicao
Mais que um protocolo de
transporte disponvel pras
aplicaes
Internet: TCP e UDP
prov
application
transport
network
data link
physical
application
transport
network
data link
physical
Transport Layer
3-3
Analogia da casa:
12 garotos enviando cartas
pra 12 garotos
processos = garotos
Mensages das aplicaes
= cartas em envelopes
hosts = casas
Protocolo de transporte
= Ann e Bill
Protocolo da camada de
rede = servio postal
Transport Layer
3-4
ordem (TCP)
servio best-effort
servios no disponveis:
Garantias de retardo
Garantias de largura de
banda
network
data link
physical
m
io
-f
-a
network
data link
physicalnetwork
m
fi
no ordenada : UDP
co
gi
l
Entrega no confivel,
network
data link
physical
rt
po
ns
Controle de
congestionamento
controle de fluxo
Setup de conexo
network
data link
physical
a
Tr
application
transport
network
data link
physical
data link
physical
network
data link
physical
application
transport
network
data link
physical
Transport Layer
3-5
Sumrio do cap. 3
3.1 Servios da
Camada de Transporte
3.2 Multiplexao e
demultiplexao
3.3 Transporte sem
conexo: UDP
a conexo: TCP
Estrutura do segmento
Transferncia de dados
confivel
Controle de fluxo
Gerenciamento da
conexo
3.5 Controle de
congestionamento TCP
Transport Layer
3-6
32 bits
Porta origem
porta destino
dados
da aplicao
(mensagem)
Formato do segmento TCP/UDP
Transport Layer
3-7
Sumrio do cap. 3
3.1 Servios da
Camada de Transporte
3.2 Multiplexao e
demultiplexao
3.3 Transporte sem
conexo: UDP
a conexo: TCP
Estrutura do segmento
Transferncia de dados
confivel
Controle de fluxo
Gerenciamento da
conexo
3.5 Controle de
congestionamento TCP
Transport Layer
3-8
[RFC 768]
estabelecimento da
conexo (seria um retardo)
simples: sem estados de
conexo no transmissor e
receptor
Pequeno cabealho de
segmento
sem controle de
congestionamento: UDP
pode transmitir na
velocidade mxima
Transport Layer
3-9
UDP: mais
Quase sempre usado
pra aplicaes
streaming multimdia
comprimento, em
Tolerantes a
bytes do
perdas
segmento UDP,
Sensveis a taxas
incluindo
de transmisso
o cabealho
Outros usos do UDP
DNS
SNMP
Transferncia
confivel sobre UDP:
adicionar
confiabilidade na
camada de aplicao
Recuperao de
erro especfica da
aplicao!
32 bits
Porta origem
Porta dest
comprimento
checksum
Dados da
aplicao
(mensagem)
Formato do segmento UDP
Transport Layer
3-10
Sumrio do cap. 3
3.1 Servios da
Camada de Transporte
3.2 Multiplexao e
demultiplexao
3.3 Transporte sem
conexo: UDP
a conexo: TCP
Estrutura do segmento
Transferncia de dados
confivel
Controle de fluxo
Gerenciamento da
conexo
3.5 Controle de
congestionamento TCP
Transport Layer
3-11
2581
ponto-a-ponto:
1 transmissor, 1 receptor
trem de bytes
confivel, em ordem:
pipelined: Controle de
fluxo e controle de
congestionamento
definem tamanho da
janela
Buffers de tx e rx
socket
door
a p p lic a t io n
w r ite s d a ta
a p p lic a t io n
re a d s d a ta
TC P
s e n d b u ffe r
TC P
r e c e iv e b u f f e r
segm ent
Transport Layer
3-12
Porta origem
Porta dest
Nmero de sequncia
Nmero de confirmao
Comp No
UA P R S F
cab usado
checksum
Janela de recep
Ponteiro dados urg
Contagem por
bytes
(no segmentos!)
Nmero de
bytes
Permitidos
Pelo receptor
Dados de
aplicao
(comprimento varivel)
Transport Layer
3-13
Host B
Host A
Usurio
digita
C
Seq=4
2, AC
K
=79, d
ata =
C
host confirma
recepo de
C
C, ecoa
ta =
a
d
,
3
4
=
C
, ACK
9
7
=
q
e
S
host confirma
recepo
Seq=4
3, ACK
do C ecoado
=80
tempo
3-14
Sumrio do cap. 3
3.1 Servios da
Camada de Transporte
3.2 Multiplexao e
demultiplexao
3.3 Transporte sem
conexo: UDP
a conexo: TCP
Estrutura do segmento
Transferncia de dados
confivel
Controle de fluxo
Gerenciamento da
conexo
3.5 Controle de
congestionamento TCP
Transport Layer
3-15
confivel em cima do
servio IP que noconfivel
Segmentos em pipeline
Acks cumulativos
TCP usa um
temporizador simples
de retransmisso
Retransmisses so
disparadas por:
Eventos de timeout
Acks duplicados
Inicialmente considere
um transmissor TCP
simplificado:
Transport Layer
3-16
timeout:
retransmite segmento
que causou timeout
reinicia temporizador
Confirma recebido:
Se confirmar
segmentos no
confirmados
anteriormente
3-17
Seq=92 timeout
=100
K
C
A
loss
Seq=9
2, 8
bytes
AC K
dados
=100
SendBase
= 100
tempo
Cenrio do ACK perdido
Host B
Seq=9
2, 8 b
ytes d
ados
Sendbase
= 100
SendBase
= 120
SendBase
= 120
2, 8 b
ytes d
ados
Seq=
100,
20 by
tes d
ados
0
10
=
K
120
=
C
K
A AC
Seq=9
2,
Seq=92 timeout
Seq=9
timeout
Host A
Host B
tempo
8 byte
s dad
os
20
1
=
K
AC
Timeout prematuro
Transport Layer
3-18
Host B
timeout
Seq=9
2, 8 b
ytes d
ados
SendBase
= 120
Seq=1
=100
K
C
A
00, 20
bytes
dados
loss
=
AC K
120
tempo
Cenrio do ACK Cumulativo
Transport Layer
3-19
quase sempre
relativamente longo:
Detecta segmentos
Se Tx recebe 3 ACKs
3-20
Host A
Host B
timeout
reenv
ia 2 o s
egme
nto
tempo
Figura 3.37 Reenviando um segmento depois de 3 ACKs duplicados
Transport Layer
3-21
Sumrio do cap. 3
3.1 Servios da
Camada de Transporte
3.2 Multiplexao e
demultiplexao
3.3 Transporte sem
conexo: UDP
a conexo: TCP
Estrutura do segmento
Transferncia de dados
confivel
Controle de fluxo
Gerenciamento da
conexo
3.5 Controle de
congestionamento TCP
Transport Layer
3-22
Controle de fluxo
Lado Rx da conexo
Tx no vai sobrecarregar
buffer do Rx
transmitindo muito
rpido
Servio de casamento
Processo de aplicao
de velocidade: casa a
taxa de envio com a
taxa de drenagem da
aplicao do Rx
Transport Layer
3-23
incluindo valor de
RcvWindow em
segmentos
Tx limita dados no
confirmados a
RcvWindow
= RcvWindow
= RcvBuffer-[LastByteRcvd LastByteRead]
Transport Layer
3-24
Sumrio do cap. 3
3.1 Servios da
Camada de Transporte
3.2 Multiplexao e
demultiplexao
3.3 Transporte sem
conexo: UDP
a conexo: TCP
Estrutura do segmento
Transferncia de dados
confivel
Controle de fluxo
Gerenciamento da
conexo
3.5 Controle de
congestionamento TCP
Transport Layer
3-25
estabelecem conexo
antes de trocar segmentos
de dados
Inicializa variveis TCP:
Num de seq.
Informao de buffers,
de controle de fluxo
(p.ex. RcvWindow)
cliente: inicia a conexo
Handshake de 3 vias:
Passo 1: cliente envia segmento
SYN TCP para servidor
especifica num de seq inicial
no h dados nessas msgs
Passo 2: servidor recebe SYN,
responde com segmento
SYNACK
servidor aloca buffers
Especifica num de seq inicial
do servidor
Passo 3: cliente recebe SYNACK,
responde com segmento ACK,
que pode conter dados
Transport Layer
3-26
cliente
derruba
FIN
ACK
derruba
FIN
Tempo de
espera
servidor
A CK
derrubado
Transport Layer
3-27
cliente
derrubando
FIN
ACK
derrubando
FIN
Tempo de
espera
Conexo derrubada.
servidor
A CK
derrubado
derrubado
Transport Layer
3-28
Sumrio do cap. 3
3.1 Servios da
Camada de Transporte
3.2 Multiplexao e
demultiplexao
3.3 Transporte sem
conexo: UDP
a conexo: TCP
Estrutura do segmento
Transferncia de dados
confivel
Controle de fluxo
Gerenciamento da
conexo
3.5 Controle de
congestionamento TCP
Transport Layer
3-29
RTT
aumenta taxa
exponencialmente at
o primeiro evento de
perda:
Host A
Host B
1 segmen
to
2 segmen
tos
4 segmen
tos
tempo
Transport Layer
3-30
Filosofia:
3 ACKs duplicados
3-31
Refinamento
P: quando o aumento
exponencial mudar pra
linear?
R: Quando CongWin chegar
em metade de seu valor
antes do timeout.
Implementao:
Limiar Varivel
Se ocorrer perda,
Transport Layer
3-32