Logo Passei Direto
Buscar
Material

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Camada de 
transporte
Flávio Luiz Seixas
2025.1
slide 2
• A camada de transporte fornece
comunicação lógica, e não
física, entre processos de
aplicações:
Introdução e serviços de 
camada de transporte
slide 3
• Um protocolo de camada de transporte fornece comunicação lógica entre
processos que rodam em hospedeiros diferentes.
• Um protocolo de camada de rede fornece comunicação lógica entre
hospedeiros.
• Uma rede de computadores pode disponibilizar vários protocolos de transporte.
• Os serviços que um protocolo de transporte pode fornecer são muitas vezes
limitados pelo modelo de serviço do protocolo subjacente da camada de rede.
Relação entre as camadas de 
transporte e de rede
slide 4
• A responsabilidade fundamental do UDP e do TCP é ampliar o serviço de
entrega IP entre dois sistemas finais para um serviço de entrega entre dois
processos que rodam nos sistemas finais.
• A ampliação da entrega hospedeiro a hospedeiro para entrega processo a
processo é denominada multiplexação/demultiplexação de camada de
transporte.
• O UDP e o TCP também fornecem verificação de integridade ao incluir campos
de detecção de erros nos cabeçalhos de seus segmentos.
Visão geral da camada de 
transporte na Internet
slide 5
• Multiplexação e demultiplexação na camada de transporte.
Multiplexação e 
demultiplexação
slide 6
• A tarefa de entregar os dados contidos em um segmento da camada de
transporte ao socket correto é denominada demultiplexação.
• O trabalho de reunir, no hospedeiro de origem, partes de dados provenientes de
diferentes sockets, encapsular cada parte de dados com informações de
cabeçalho para criar segmentos, e passar esses segmentos para a camada de
rede é denominada multiplexação.
Multiplexação e 
demultiplexação
slide 7
• Campos de número de porta de origem e de destino em um segmento de
camada de transporte:
Multiplexação e 
demultiplexação
slide 8
• O UDP, definido no [RFC 768], faz apenas quase tão pouco quanto um
protocolo de transporte pode fazer.
• À parte sua função de multiplexação/demultiplexação e de alguma verificação
de erros simples, ele nada adiciona ao IP.
• Se o desenvolvedor de aplicação escolher o UDP, em vez do TCP, a aplicação
estará “falando” quase diretamente com o IP.
• O UDP é não orientado para conexão.
Transporte não orientado 
para conexão: UDP
slide 9
• Aplicações populares da Internet e seus protocolos de transporte subjacentes:
Transporte não orientado 
para conexão: UDP
slide 10
• Aplicações populares da Internet e seus protocolos de transporte subjacentes:
Estrutura do segmento UDP
slide 11
Internet checksum: example
example: add two 16-bit integers
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sum
checksum
Note: when adding numbers, a carryout from the most 
significant bit needs to be added to the result
* Check out the online interactive exercises for more 
examples: http://gaia.cs.umass.edu/kurose_ross/interactive/
slide 12
• Modelo do serviço e implementação do serviço:
Princípios da transferência 
confiável de dados
slide 13
• O protocolo bit alternante.
Transferência confiável de dados 
sobre um canal com perda e com 
erros de bits
slide 14
• O protocolo bit alternante.
Transferência confiável de dados 
sobre um canal com perda e com 
erros de bits
slide 15
• No coração do problema do desempenho do rdt está o fato de ele ser um
protocolo do tipo pare e espere.
• Um protocolo pare e espere em operação.
Protocolos de transferência confiável 
de dados com paralelismo
slide 16
• Um protocolo com paralelismo em operação
Protocolos de transferência confiável 
de dados com paralelismo
slide 17
• Envio com pare e espere
Protocolos de transferência confiável 
de dados com paralelismo
slide 18
• Envio com paralelismo
Protocolos de transferência confiável 
de dados com paralelismo
slide 19
• Em um protocolo Go-Back-N (GBN), o remetente é autorizado a transmitir
múltiplos pacotes sem esperar por um reconhecimento.
• Porém, fica limitado a ter não mais do que algum número máximo permitido,
N, de pacotes não reconhecidos na “tubulação”.
• Visão do remetente para os números de sequência no protocolo Go-Back-N:
Go-Back-N (GBN)
slide 20
• Go-Back-N em operação
Go-Back-N (GBN)
slide 21
• Protocolos de repetição seletiva (SR) evitam retransmissões desnecessárias.
• Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido
recebidos com erro no destinatário.
• Essa retransmissão individual, só quando necessária, exige que o destinatário
reconheça individualmente os pacotes recebidos de modo correto.
Repetição seletiva (SR)
slide 22
• Operação SR
Repetição seletiva (SR)
slide 23
Comparação (incluindo o TCP)
TCP
slide 25
Resumo de mecanismos de transferência confiável de dados e sua utilização:
• Soma de verificação - Usada para detectar erros de bits em um pacote
transmitido.
• Temporizador - Usado para controlar a temporização/retransmissão de um
pacote, possivelmente porque o pacote (ou seu ACK) foi perdido dentro do
canal.
• Número de sequência - Usado para numeração sequencial de pacotes de dados
que transitam do remetente ao destinatário.
Transporte orientado para conexão
slide 26
• Reconhecimento - Usado pelo destinatário para avisar o remetente que um
pacote ou conjunto de pacotes foi recebido corretamente.
• Janela, paralelismo - O remetente pode ficar restrito a enviar somente pacotes
com números de sequência que caiam dentro de uma determinada faixa.
Transporte orientado para conexão
slide 27
Estrutura do quadro
slide 28
Encapsulamento
slide 29
• Uma conexão TCP provê um serviço full-duplex.
• A conexão TCP é sempre ponto a ponto.
• Uma vez estabelecida uma conexão TCP, dois processos de aplicação podem
enviar dados um para o outro.
• O TCP combina cada porção de dados do cliente com um cabeçalho TCP,
formando, assim, segmentos TCP.
A conexão TCP
slide 30
• O número de sequência para um segmento é o número do primeiro byte do
segmento.
• O número de reconhecimento que o hospedeiro A atribui a seu segmento é o
número de sequência do próximo byte que ele estiver aguardando do
hospedeiro B.
• Como o TCP somente reconhece bytes até o primeiro byte que estiver faltando
na cadeia, dizemos que o TCP provê reconhecimentos cumulativos.
Números de sequência e 
números de reconhecimento
slide 31
• O TCP cria um serviço de transferência confiável de dados sobre o serviço
de melhor esforço do IP.
• O serviço de transferência garante que a cadeia de bytes é idêntica à cadeia de
bytes enviada pelo sistema final que está do outro lado da conexão.
• Os procedimentos recomendados no [RFC 6298] para gerenciamento de
temporizadores TCP utilizam apenas um único temporizador de retransmissão.
Transferência confiável de dados
slide 32
Gerenciamento da conexão TCP: 
estabelecimento
slide 33
Gerenciamento da conexão TCP:
finalização
slide 34
Cenário de transferência no TCP
slide 35
Controle de fluxo
application
process
TCP socket
receiver buffers
TCP
code
IP
code
application
OS
receiver protocol stack
application may 
remove data from 
TCP socket buffers …. 
… slower than TCP 
receiver is delivering
(sender is sending)
from sender
receiver controls sender, so 
sender won’t overflow 
receiver’s buffer by transmitting 
too much, too fast
flow control
slide 36
Controle de fluxo
• receiver “advertises” free buffer space 
by including rwnd value in TCP header 
of receiver-to-sender segments
– RcvBuffer size set via socket 
options (typical default is 4096 
bytes)
– many operating systems autoadjust
RcvBuffer
• sender limits amount of unacked (“in-
flight”) data to receiver’s rwnd value
• guarantees receive buffer will not 
overflow
buffered data
free buffer spacerwnd
RcvBuffer
TCP segment payloads
to application process
receiver-side buffering
slide 37
TCP: Cenários de retransmissão
lost ACK scenario
Host BHost A
Seq=92, 8 bytes of data
ACK=100
Seq=92, 8 bytes of data
Xti
m
e
o
u
t
ACK=100
premature timeout
Host BHost A
Seq=92, 8 bytes of data
ACK=100
Seq=92, 8
bytes of data
ti
m
e
o
u
t
ACK=120
Seq=100, 20 bytes of data
ACK=120
SendBase=100
SendBase=120
SendBase=120
SendBase=92
slide 38
X
cumulative ACK
Host BHost A
Seq=92, 8 bytes of data
ACK=100
Seq=120, 15 bytes of data
ti
m
e
o
u
t
Seq=100, 20 bytes of data
ACK=120
TCP: Cenários de retransmissão
slide 39
TCP: Retransmissão rápida
time-out period often relatively long:
 long delay before resending lost packet
detect lost segments via duplicate ACKs.
 sender often sends many segments 
back-to-back
 if segment is lost, there will likely be 
many duplicate ACKs.
if sender receives 3 ACKs 
for same data
(“triple duplicate ACKs”), 
resend unacked segment 
with smallest seq #
 likely that unacked
segment lost, so don’t 
wait for timeout
TCP fast retransmit
slide 40
TCP: Retransmissão rápida
X
fast retransmit after sender 
receipt of triple duplicate ACK
Host BHost A
Seq=92, 8 bytes of data
ACK=100
ti
m
e
o
u
t
ACK=100
ACK=100
ACK=100
Seq=100, 20 bytes of data
Seq=100, 20 bytes of data
slide 41
Controle de congestionamento do TCP: 
Aumento aditivo, redução multiplicativa
 approach: sender increases transmission rate (window size), probing for 
usable bandwidth, until loss occurs
• additive increase: increase cwnd by 1 MSS every RTT until loss detected
• multiplicative decrease: cut cwnd in half after loss 
c
w
n
d
:
T
C
P
 s
e
n
d
e
r 
c
o
n
g
e
s
ti
o
n
 w
in
d
o
w
 s
iz
e
AIMD saw tooth
behavior: probing
for bandwidth
additively increase window size …
…. until loss occurs (then cut window in half)
time
slide 42
Controle de congestionamento do TCP
 sender limits transmission:
 cwnd is dynamic, function of 
perceived network congestion
TCP sending rate:
 roughly: send cwnd bytes, wait RTT 
for ACKS, then send more bytes
last byte
ACKed sent, not-
yet ACKed
(“in-flight”)
last byte 
sent
cwnd
LastByteSent-
LastByteAcked
 ssthresh
congestion
avoidance 
cwnd = cwnd + MSS (MSS/cwnd)
dupACKcount = 0
transmit new segment(s), as allowed
new ACK
.
dupACKcount++
duplicate ACK
fast
recovery 
cwnd = cwnd + MSS
transmit new segment(s), as allowed
duplicate ACK
ssthresh= cwnd/2
cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3
timeout
ssthresh = cwnd/2
cwnd = 1 
dupACKcount = 0
retransmit missing segment
ssthresh= cwnd/2
cwnd = ssthresh + 3
retransmit missing segment
dupACKcount == 3cwnd = ssthresh
dupACKcount = 0
New ACK
slow 
start
timeout
ssthresh = cwnd/2 
cwnd = 1 MSS
dupACKcount = 0
retransmit missing segment
cwnd = cwnd+MSS
dupACKcount = 0
transmit new segment(s), as allowed
new ACKdupACKcount++
duplicate ACK
L
cwnd = 1 MSS
ssthresh = 64 KB
dupACKcount = 0
New
ACK!
New
ACK!
New
ACK!
slide 47
Vazão do TCP
• avg. TCP thruput as function of window size, RTT?
– ignore slow start, assume always data to send
• W: window size (measured in bytes) where loss occurs
– avg. window size (# in-flight bytes) is ¾ W
– avg. thruput is 3/4W per RTT
W
W/2
avg TCP thruput = 
3
4
W
RTT bytes/sec
slide 48
TCP Futures: TCP over “long, fat pipes”
• example: 1500 byte segments, 100ms RTT, want 10 Gbps throughput
• requires W = 83,333 in-flight segments
• throughput in terms of segment loss probability, L [Mathis 1997]:
➜ to achieve 10 Gbps throughput, need a loss rate of L = 2·10-10 
– a very small loss rate!
• new versions of TCP for high-speed
TCP throughput = 
1.22 . MSS
RTT L
slide 49
TCP Fairness
fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, 
each should have average rate of R/K
TCP connection 1
bottleneck
router
capacity R
TCP connection 2
slide 50
Why is TCP fair?
two competing sessions:
 additive increase gives slope of 1, as throughout increases
 multiplicative decrease decreases throughput proportionally 
R
R
equal bandwidth share
Connection 1 throughput
congestion avoidance: additive increase
loss: decrease window by factor of 2
congestion avoidance: additive increase
loss: decrease window by factor of 2
slide 51
Fairness (more)
Fairness and UDP
 multimedia apps often do not use TCP
• do not want rate throttled by 
congestion control
 instead use UDP:
• send audio/video at constant rate, 
tolerate packet loss
Fairness, parallel TCP connections
 application can open multiple 
parallel connections between two 
hosts
 web browsers do this 
 e.g., link of rate R with 9 existing 
connections:
• new app asks for 1 TCP, gets 
rate R/10
• new app asks for 11 TCPs, 
gets R/2 
slide 52
Explicit Congestion Notification (ECN)
network-assisted congestion control:
 two bits in IP header (ToS field) marked by network router to 
indicate congestion
 congestion indication carried to receiving host
 receiver (seeing congestion indication in IP datagram) ) sets 
ECE bit on receiver-to-sender ACK segment to notify sender 
of congestion
source
application
transport
network
link
physical
destination
application
transport
network
link
physical
ECN=00 ECN=11
ECE=1
IP datagram
TCP ACK segment

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Mais conteúdos dessa disciplina