Escolar Documentos
Profissional Documentos
Cultura Documentos
Capítulo 3
Camada de transporte
●
A camada de transporte
fornece comunicação
lógica (e não física)
diretamente entre processos
de aplicações.
●
Comunicação lógica: tudo
se passa como se os
processos dos hospedeiros
estivessem conectados
diretamente
Área de Telecomunicações 2
Relação entre as camadas de transporte e
de rede
Redes de Computadores I
Área de Telecomunicações 4
Multiplexing/demultiplexing
multiplexing at sender:
handle data from multiple demultiplexing at receiver:
sockets, add transport use header info to deliver
header (later used for received segments to
demultiplexing) correct socket
application
Área de Telecomunicações 6
Multiplexação e demultiplexação
Redes de Computadores I
Área de Telecomunicações 7
Demultiplexação não orientada para conexão
Redes de Computadores I
●
quando hospedeiro
●
cria sockets com número de recebe segmento UDP:
porta automático: – verifica número de porta
clietSocket = socket(AF_INET, de destino no segmento
SOCK_DGRAM); – direciona segmento UDP
●
Alternativamente podemos para socket com esse
número de porta
fixar a porta, acrescentando: ●
datagramas IP com
clientSocket.bind(('', 12535));
diferentes endereços IP
●
socket UDP identificado por de origem e/ou números
tupla de dois elementos: de porta de origem
(endereço IP destino, número porta direcionados para o
destino) mesmo socket
Área de Telecomunicações 8
Demultiplexação não orientada para conexão
socket UDP identificado por tupla de dois elementos:
Redes de Computadores I
P2 P3 P1P1
D-IP: A D-IP: B
DP: 9157 DP: 5775
SP: 6428 SP: 6428
D-IP: C D-IP: C
cliente DP: 6428 DP: 6428 Cliente
servidor
IP: A SP: 9157
IP: C SP: 5775 IP:B
Área de Telecomunicações 9
Demultiplexação orientada para conexão
Redes de Computadores I
●
socket TCP identificado ●
hospedeiro servidor pode
por tupla de 4 elementos: admitir muitos sockets
– endereço IP de origem TCP simultâneos:
– número de porta de origem – cada socket identificado
– endereço IP de destino por sua própria tupla de 4
– número de porta de destino ●
servidores Web têm
●
hospedeiro destinatário diferentes sockets para
usa todos os quatro cada cliente conectando
valores para direcionar – HTTP não persistente terá
segmento ao socket diferentes sockets para
cada requisição
apropriado
Área de Telecomunicações 10
Demultiplexação orientada para conexão
Redes de Computadores I
Área de Telecomunicações 11
Demultiplexação orientada para conexão
Redes de Computadores I
P1 P4 P5 P6 P2 P1
P3
SP: 5775
DP: 80
S-IP: B
D-IP:C
Área de Telecomunicações 12
Transporte não orientado para conexão:
UDP
Redes de Computadores I
Área de Telecomunicações 13
Por que usa-se UDP
Redes de Computadores I
Área de Telecomunicações 15
Estrutura do segmento UDP
Redes de Computadores I
Comprimento
da mensagem
Área de Telecomunicações 16
Soma de verificação (checksum) UDP
Redes de Computadores I
Área de Telecomunicações 17
Soma de verificação UDP
Redes de Computadores I
Transport Layer 19
Principles of reliable data transfer
important in application, transport, link layers
top-10 list of important networking topics!
Transport Layer 20
Principles of reliable data transfer
important in application, transport, link layers
top-10 list of important networking topics!
Transport Layer 21
Principles of reliable data transfer
rdt_send(): called from above, deliver_data(): called by
(e.g., by app.). Passed data to rdt to deliver data to upper
deliver to receiver upper layer
send receive
side side
Transport Layer 22
Transferência confiável de
dados: introdução
Redes de Computadores I
vamos:
●
desenvolver de forma incremental os lados remetente e destinatário do
protocolo de transferência confiável de dados (rdt)
●
considerar apenas a transf. de dados unidirecional. Bidirecional: é só
duplicar a estrutura
– mas informações de controle fluirão nas duas direções!
●
usar máquinas de estado finito (FSM) para especificar remetente e
destinatário
evento causando transição de estado
ações tomadas sobre transição de estado
estado: quando neste
“estado”, próximo estado estado
1 evento
estado determinado 2
exclusivamente pelo ações
próximo evento
Área de Telecomunicações 23
Transferência confiável de dados sobre um
canal perfeitamente confiável: rdt1.0
Redes de Computadores I
Área de Telecomunicações 24
Transferência confiável de dados sobre um
canal com erros de bits: rdt2.0
Redes de Computadores I
●
rdt2.0 – Um protocolo para
um canal com erros de bits.
Base dos protocolos ARQ
(Automatic Repeat Request)
✔
Detecção de erros
(mecanismo do UDP)
✔
Realimentação do
destinatário (ACK ou
NACK)
✔
Retransmissão
• Pare e espere
Área de Telecomunicações 25
rdt2.0: FSM specification
rdt_send(data)
sndpkt = make_pkt(data, checksum) receiver
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt)
Wait for Wait for rdt_rcv(rcvpkt) &&
call from ACK or udt_send(sndpkt) corrupt(rcvpkt)
above NAK udt_send(NAK)
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
Transport Layer 26
rdt2.0: operation with no errors
rdt_send(data)
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt)
Wait for Wait for rdt_rcv(rcvpkt) &&
call from ACK or udt_send(sndpkt) corrupt(rcvpkt)
above NAK udt_send(NAK)
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
Transport Layer 27
rdt2.0: error scenario
rdt_send(data)
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt)
Wait for Wait for rdt_rcv(rcvpkt) &&
call from ACK or udt_send(sndpkt) corrupt(rcvpkt)
above NAK udt_send(NAK)
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
Transport Layer 28
Transferência confiável de dados sobre um
canal com erros de bits: rdt2.0
Redes de Computadores I
Área de Telecomunicações 29
Transferência confiável de dados sobre um
canal com erros de bits: rdt2.1
Redes de Computadores I
• rdt2.1 remetente
Área de Telecomunicações 30
Transferência confiável de dados sobre um
canal com erros de bits: rdt2.1
Redes de Computadores I
• rdt2.1 destinatário
Área de Telecomunicações 31
Transferência confiável de dados sobre um
canal com erros de bits: rdt2.1-2
Redes de Computadores I
Área de Telecomunicações 32
Transferência confiável de dados sobre um
canal com erros de bits: rdt2.2
Redes de Computadores I
• rdt2.2 remetente
Área de Telecomunicações 33
Transferência confiável de dados sobre um
canal com erros de bits: rdt2.2
Redes de Computadores I
• rdt2.2 destinatário
Área de Telecomunicações 34
Transferência confiável de dados sobre um
canal com perda de pacotes e com erros de bits:
rdt3.0
Redes de Computadores I
Área de Telecomunicações 35
Transferência confiável de dados sobre um
canal com perda e com erros de bits: rdt3.0
Redes de Computadores I
• rdt3.0 remetente
Área de Telecomunicações 37
rdt3.0 in action
sender receiver sender receiver
send pkt0 pkt0 send pkt0 pkt0
rcv pkt0 rcv pkt0
ack0 send ack0 ack0 send ack0
rcv ack0 rcv ack0
send pkt1 pkt1 send pkt1 pkt1
rcv pkt1 X
ack1 send ack1 loss
rcv ack1
send pkt0 pkt0
rcv pkt0 timeout
ack0 send ack0 resend pkt1 pkt1
rcv pkt1
ack1 send ack1
rcv ack1
send pkt0 pkt0
(a) no loss rcv pkt0
ack0 send ack0
Transport Layer 39
Protocolos de transferência confiável
de dados com paralelismo
Redes de Computadores I
Área de Telecomunicações 40
Desempenho do rdt3.0
Redes de Computadores I
●
rdt3.0 funciona, mas com desempenho ruim
●
ex.: enlace 1 Gbps, 15 ms atraso, pacote 8000 bits:
L 8000 bits/pacote
t trans = = 9 =8 us
R 10 bps
U remet: utilização – fração do tempo remet. ocupado enviando
L/ R 0,008
U remet = = =0,00027
RTT + L/ R 30,008
Pct. 1 KB cada 30 ms -> 267 kB/s vazão em enlace de 1 Gbps
Protocolo de rede limita uso de recursos físicos!
Solução?????
Área de Telecomunicações 41
Protocolos de transferência confiável
de dados com paralelismo
Redes de Computadores I
Área de Telecomunicações 42
Protocolos de transferência confiável de
dados com paralelismo
Redes de Computadores I
Área de Telecomunicações 43
Protocolos de transferência confiável de
dados com paralelismo
Redes de Computadores I
Aumento de utilização
por fator de 3!
3∗L/ R 0,024
U remet = = =0,0008
RTT + L/ R 30,008
Área de Telecomunicações 44
Go-Back-N (GBN)
• Em um protocolo Go-Back-N (GBN), o remetente é
Redes de Computadores I
Área de Telecomunicações 45
Go-Back-N (GBN)
• Descrição da FSM estendida do remetente GBN
Redes de Computadores I
Área de Telecomunicações 46
Go-Back-N (GBN)
Redes de Computadores I
Área de Telecomunicações 47
Go-Back-N (GBN) em operação – N = 4
Redes de Computadores I
Área de Telecomunicações 48
Repetição seletiva (SR)
Redes de Computadores I
Área de Telecomunicações 49
Repetição seletiva (SR) – N = 4
Redes de Computadores I
Área de Telecomunicações 50
sender window receiver window
Selective repeat: (after receipt) (after receipt)
Área de Telecomunicações 52
Transporte orientado para conexão: TCP
Redes de Computadores I
Área de Telecomunicações 54
Estrutura do segmento TCP
Redes de Computadores I
3-way handshake
Finalizando
Área de Telecomunicações 56
Gerenciamento da conexão TCP
apresentação de 3 vias:
Redes de Computadores I
Área de Telecomunicações 57
Gerenciamento da conexão TCP
fechando uma conexão:
Redes de Computadores I
#’s de sequência:
– “número” na cadeia de
bytes do 1o byte nos
dados do segmento
ACKs:
– # seq do próximo byte
esperado do outro lado
– ACK cumulativo
Área de Telecomunicações 59
Números de sequência e números de
reconhecimento
Redes de Computadores I
Área de Telecomunicações 60
Tempo de ida e volta e
timeout do TCP
Redes de Computadores I
Área de Telecomunicações 61
Tempo de ida e volta e
timeout do TCP
Redes de Computadores I
Área de Telecomunicações 62
Amostras de RTTs estimados:
Redes de Computadores I
350
300
250
RTT (milliseconds)
200
150
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
Área de Telecomunicações 63
Tempo de ida e volta e
timeout do TCP
Redes de Computadores I
definindo o timeout
●
EstimtedRTT mais “margem de segurança”
– grande variação em EstimatedRTT -> maior margem de seg.
●
primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT:
DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
(geralmente, = 0,25)
Área de Telecomunicações 64
TCP: cenários de retransmissão
Redes de Computadores I
Seq = 92 timeout
o s Seq = dos
100,
20 by
timeout
tes d
ados
= 1 00
ACK
1 00
X ACK = K = 12
0
perda AC
Seq = Seq =
92, 8 92, 8
b ytes d bytes
ados dados
Seq = 92 timeout
= 120
00 K
=1 AC
ACK
Timeout prematuro
tempo tempo
Cenário de ACK perdido
Área de Telecomunicações 65
TCP: cenários de retransmissão
Redes de Computadores I
Host A Host B
Seq =
92 , 8 byt
es da
timeout dos
Seq = = 1 00
100, 2 AC K
0 b yt e
s dado
s
X
perda
= 120
ACK
tempo
Cenário ACK cumulativo
Área de Telecomunicações 66
TCP fast retransmit
O timeout é
frequentemente TCP fast retransmit
relativamente longo:
muito atraso antes de
se o remetente receber
reenviar o pacote 3 ACKs para os
perdido mesmos dados (“ACKs
Detectar segmentos duplicados triplos”),
perdidos por meio de reenvie o segmento
ACKs duplicados. com o menor número
remetente muitas vezes
de seq #
envia muitos segmentos é provável que o
consecutivos segmento não
se o segmento for confirmado tenha se
perdido, provavelmente perdido, então não
haverá muitos ACKs espere pelo tempo
duplicados. limite
Transport Layer 67
TCP fast retransmit
Host A Host B
ACK=100
ACK=100
timeo
ut
ACK=100
ACK=100
Seq=100, 20 bytes of data
Área de Telecomunicações 70
Controle de fluxo
Redes de Computadores I
Área de Telecomunicações 72
Controle de fluxo TCP
Controle de fluxo
Redes de Computadores I
Lado receptor da
conexão TCP tem um remetente não estourará
buffer de recepção: buffer do destinatário
•Espaço limitado em transmitindo muitos dados
memória. muito rapidamente
Processo da aplicação ●
serviço de
pode ser lento na leitura compatibilização de
do buffer velocidades:
•O remetente pode ser compatibiliza a taxa de
envio do remetente
muito mais rápido com a de leitura da
aplicação receptora
Área de Telecomunicações 73
Controle de fluxo TCP: como funciona
Redes de Computadores I
●
destinatário: anuncia
espaço de buffer não
usado incluindo valor
de rwnd no cabeçalho
do segmento
(suponha que destinatário TCP ●
remetente: limita # de
não descarte segmentos fora bytes com ACK a rwnd
de ordem) – garante que buffer do
●
espaço de buffer não usado: destinatário não estoure
= rwnd (slide 48)
= RcvBuffer-[LastByteRcvd -
LastByteRead]
Área de Telecomunicações 74
Controle de congestionamento
Redes de Computadores I
Área de Telecomunicações 75
Princípios de controle
de congestionamento
Redes de Computadores I
Área de Telecomunicações 76
Princípios de controle de
congestionamento
Redes de Computadores I
“custos” do congestionamento:
Aumento de atrasos
Área de Telecomunicações 77
Princípios de controle de congestionamento
Redes de Computadores I
Área de Telecomunicações 78
Princípios de controle de congestionamento
a) Caso ideal: = (vazão)
in out
Redes de Computadores I
R/3
out
out
out
R/4
a. b. c.
“custos” do congestionamento:
mais trabalho (retransmissão) para determinada “vazão”
retransmissões desnecessárias: enlace transporta várias cópias do
pacote
Área de Telecomunicações 79
Princípios de controle de congestionamento
As causas e os custos do
Redes de Computadores I
H
congestionamento: o
s o
t
u
A
Cenário 3: quatro remetentes, t
Área de Telecomunicações 80
Mecanismos de controle de
congestionamento
Redes de Computadores I
Área de Telecomunicações 81
Controle de congestionamento no TCP
Redes de Computadores I
✔
Se um remetente TCP perceber que há pouco
congestionamento no caminho entre ele e o destinatário,
aumentará sua taxa de envio.
✔
Se perceber que há congestionamento, reduzirá sua taxa de
envio.
Área de Telecomunicações 82
Controle de congestionamento no TCP
Redes de Computadores I
Área de Telecomunicações 83
Partida lenta
Redes de Computadores I
Área de Telecomunicações 84
Controle de congestionamento TCP
Redes de Computadores I
Área de Telecomunicações 86
Recuperação rápida
• Evolução da janela de congestionamento do TCP (O antigo
Redes de Computadores I
Área de Telecomunicações 87
Controle de congestionamento TCP
Redes de Computadores I
3 ACKs duplicados
Área de Telecomunicações 88
Controle de congestionamento TCP
Redes de Computadores I
3 ACKs duplicados
Área de Telecomunicações 89
Controle de congestionamento no TCP:
retrospectiva
Redes de Computadores I
Área de Telecomunicações 90
TCP throughput
Redes de Computadores I
Área de Telecomunicações 91
Futuro do TCP
Redes de Computadores I
1.22 MSS
RTT L
Área de Telecomunicações 92
●
TCP: modelagem de latência
Redes de Computadores I
Exemplo numérico:
R = 10Gbps
RTT = 0,3 s
S = 10000 bits
O = 100000 bits (10 segmentos)
atraso = 2xRTT + O/R
Atraso = 0,60001 s
Portanto:
Vazão média = 166,67 kbps
Área de Telecomunicações 94
●
Considerando partida lenta
Redes de Computadores I
Inicia
Exemplo numérico (cálculo conexão
aproximado): Solicita
objeto
R = 10Gbps
1
Segmento
RTT = 0,3 s
S = 10000 bits o2
Segmentento 3
O = 100000 bits (10 segmentos) Segm
Portanto: 8
Segmengto to 9
Vazão média = 60,6 kbps Se menm
Seg ent
o 10
Área de Telecomunicações 95
Equidade
Redes de Computadores I
Área de Telecomunicações 96
Equidade
• Vazão alcançada pelas conexões TCP 1 e TCP 2
Redes de Computadores I
Área de Telecomunicações 97
●
Equidade
Redes de Computadores I
Eqüidade e UDP
Aplicações multimedia normalmente não usam TCP
Não querem a taxa estrangulada pelo controle de
congestionamento
Em vez disso, usam UDP:
Trafega áudio/vídeo a taxas constantes, toleram perda de
pacotes