Escolar Documentos
Profissional Documentos
Cultura Documentos
Camada de Transporte
Redes de Computadores e
a Internet: Uma
abordagem Top-Down
All material copyright 1996-2020 8a edição
J.F Kurose and K.W. Ross, All Rights Reserved Jim Kurose, Keith Ross
Pearson & Bookman, 2021
Transport Layer: 3-1
Capítulo 3: Camada de Transporte
3: Camada de Transporte
2
Capítulo 3: roteiro
§ Serviços da camada de transporte
§ Multiplexação e demultiplexação
§ Transporte sem conexões: UDP
§ Princípios da transferência confiável
§ Transporte orientado a conexões: TCP
§ Princípios de controle de
congestionamento
§ Controle de congestionamento no TCP
§ Evolução da funcionalidade da camada
de transporte
Tra
§ os protocolos de transporte são
nsp
executados nos sistemas finais:
ort
e ló
• lado transmissor: quebra as
g ic
mensagens da aplicação em local or
of
regional ISP
segmentos, repassa-os para a camada
im-
a-f
de rede home network
im
content
• lado receptor: remonta as mensagens provider
network
a partir dos segmentos, repassa-as datacenter
aplicaçãonetwork
transporte
para a camada de aplicação rede
enlace
3: Camada de Transporte 5
Camadas de Transporte x rede
3: Camada de Transporte 6
Ações da Camada de Transporte
Transmissor:
aplicação § recebe uma mensagem da Aplicação
msg apl.
camada de aplicação
transporte § determina os valores dos TThhtransport
msg apl.
campos do cabeçalho
rede (IP) § cria o segmento rede (IP)
enlace
§ passa o segmento para o enlace
IP física
física
Receptor:
aplicação § recebe o segmento do IP aplicação
§ verifica valores do cabeçalho
msg. apl.
transporte § extrai a mensagem da transporte
camada de aplicação
rede (IP) rede (IP)
§ demultiplexa a mensagem
enlace para a aplicação via socket enlace
física física
Th msg apl.
• controle de congestionamento
Tra
nsp
• controle de fluxo
ort
• estabelecimento de conexão (“setup”)
e ló
g ic
§ UDP: User Datagram Protocol local or
of
regional ISP
im-
• entrega não confiável, não ordenada: UDP
a-f
home network
im
• extensão sem “gorduras” do “melhor content
provider
esforço” do IP network datacenter
aplicaçãonetwork
transporte
3: Camada de Transporte 9
Capítulo 3: roteiro
§ Serviços da camada de transporte
§ Multiplexação e demultiplexação
§ Transporte sem conexões: UDP
§ Princípios da transferência confiável
§ Transporte orientado a conexões:
TCP
§ Princípios de controle de
congestionamento
§ Controle de congestionamento no
TCP
§ Evolução da funcionalidade da
camada de transporte Transport Layer: 3-10
servidor HTTP
cliente
aplicação aplicação
HTTP msg
transporte
Hnnetwork
Ht HTTP msg transporte
transporte
rede enlace rede
enlace física enlace
física física
transporte
Hn Ht HTTP msg
transporte
3: Camada de Transporte 16
Como funciona a demultiplexação
32 bits
§ computador recebe os datagramas IP porta origem porta destino
• cada datagrama possui os
endereços IP da origem e do outros campos
destino do cabeçalho
• cada datagrama transporta um
segmento da camada de
transporte dados da
• cada segmento possui números aplicação
das portas origem e destino (mensagem/payload)
§ O hospedeiro usa os endereços IP e
os números das portas para
formato de segmento
direcionar o segmento ao socket
apropriado TCP/UDP
3: Camada de Transporte 17
Demultiplexação não orientada a conexões
Lembrete: quando o hospedeiro recebe o
segmento UDP:
§ socket criado possui número de m verifica no. da porta de destino no
porta local ao host: segmento
DatagramSocket mySocket1 = new m encaminha o segmento UDP para o
DatagramSocket(12534);
socket com aquele no. de porta
3: Camada de Transporte 18
Demultiplexação não orientada a conexões: exemplo
DatagramSocket
serverSocket = new
DatagramSocket mySocket2 DatagramSocket DatagramSocket mySocket1 =
= new DatagramSocket new DatagramSocket (5775);
(6428);
(9157);
application
application application
P1
P3 P4
transport
transport transport
network
network link network
link physical link
physical physical
Resumo
22
Capítulo 3: roteiro
§ Serviços da camada de transporte
§ Multiplexação e demultiplexação
§ Transporte sem conexões: UDP
§ Princípios da transferência confiável
§ Transporte orientado a conexões:
TCP
§ Princípios de controle de
congestionamento
§ Controle de congestionamento no
TCP
§ Evolução da funcionalidade da
camada de transporte Transport Layer: 3-23
UDP: User Datagram Protocol
§ Protocolo de transporte da Internet Por quê existe o UDP?
mínimo, “sem gorduras”, r elimina estabelecimento de
§ Serviço “melhor esforço”, segmentos conexão (que adiciona atraso RTT)
UDP podem ser: r simples: não mantém “estado” da
• perdidos conexão nem no remetente, nem
• entregues à aplicação fora de no receptor
ordem r cabeçalho de segmento reduzido
§ sem conexão: r Não há controle de
• não há saudação inicial entre o congestionamento:
remetente e o receptor UDP m UDP pode transmitir tão rápido
quanto desejado (e possível)
• tratamento independente para m funciona mesmo diante de
cada segmento UDP congestionamento
3: Camada de Transporte 24
3: Camada de Transporte
25
UDP: User Datagram Protocol [RFC 768]
3: Camada de Transporte 26
UDP: Ações da Camada de Transporte
aplicação aplicação
transporte transporte
(UDP) (UDP)
enlace enlace
física física
enlace
§ passa o segmento para o IP enlace
física física
Dados de
aplicação
Comprimento em bytes do (mensagem)
segmento UDP,
incluindo cabeçalho
3: Camada de Transporte 30
Soma de Verificação (checksum) UDP
Objetivo: detectar “erros” (ex.: bits trocados) no segmento transmitido
1o número 2o número soma
Transmitido: 5 6 11
Recebido: 4 6 11
soma de verificação
calculada no receptor
= soma de verificação calculada
no transmissor (como recebida)
3: Camada de Transporte 31
Soma de Verificação (checksum) UDP
Objetivo: detectar “erros” (ex.: bits trocados) no segmento transmitido
transmissor: receptor:
§ trata conteúdo do segmentoUDP (incluindo § calcula checksum do segmento
campos do cabeçalho UDP e endereços IP) como
recebido
sequência de inteiros de 16-bits
§ checksum: soma (adição usando § verifica se o checksum calculado
complemento de 1) do conteúdo do bate com o valor recebido:
segmento • NÃO - erro detectado
§ transmissor coloca o complemento do • SIM - nenhum erro detectado.
valor da soma no campo checksum do Mas ainda pode ter erros? Veja
UDP depois ….
3: Camada de Transporte 32
3: Camada de Transporte
transbordo 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
soma 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
33
3: Camada de Transporte
34
3: Camada de Transporte
UDP: Resumo
35
Capítulo 3: roteiro
§ Serviços da camada de transporte
§ Multiplexação e demultiplexação
§ Transporte sem conexões: UDP
§ Princípios da transferência confiável
§ Transporte orientado a conexões:
TCP
§ Princípios de controle de
congestionamento
§ Controle de congestionamento no
TCP
§ Evolução da funcionalidade da
camada de transporte Transport Layer: 3-36
Princípios de Transferência confiável de dados
processo processo
remetente destinatário
aplicação dados dados
transporte
canal confiável
processo processo
remetente destinatário
aplicação dados dados
transporte
processo processo
remetente destinatário
aplicação dados dados
transporte
para e espera
transmissor envia um pacote, aguarda resposta do receptor
Transport Layer: 3-45
rdt2.0: especificações das FSMs
rdt_send(data)
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
Espera Espera isNAK(rcvpkt)
transmissor chamada por ACK udt_send(sndpkt) rdt_rcv(rcvpkt) && corrupt(rcvpkt)
de cima ou NAK
udt_send(NAK)
para e espera
Transmissor envia um pacote,
e aguarda resposta do receptor
Transport Layer: 3-50
rdt2.1: transmissor, trata ACK/NAKs corrompidos
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt) rdt_rcv(rcvpkt) &&
(corrupt(rcvpkt) ||
Espera Espera por isNAK(rcvpkt) )
chamada 0 ACK ou
NAK 0 udt_send(sndpkt)
de cima
rdt_rcv(rcvpkt)
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) &&
&& notcorrupt(rcvpkt)
isACK(rcvpkt)
&& isACK(rcvpkt)
L
L
Espera por Espera
ACK ou chamada 1
rdt_rcv(rcvpkt) NAK 1 de cima
&& (corrupt(rcvpkt) ||
isNAK(rcvpkt) ) rdt_send(data)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
Como veremos, TCP usa essa abordagem para não usar NAKs
Transport Layer: 3-54
rdt2.2: fragmentos do transmissor, receptor
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
Espera Espera por
ACK isACK(rcvpkt,1) )
chamada 0
de cima 0 udt_send(sndpkt)
fragmento da
FSM do transmissor rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) && && isACK(rcvpkt,0)
(corrupt(rcvpkt) || L
has_seq1(rcvpkt)) Espera fragmento da FSM
por 0 de
udt_send(sndpkt) baixo do receptor
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK1, chksum)
udt_send(sndpkt) Transport Layer: 3-55
rdt3.0: canais com erros e perdas
Nova hipóstese sobre o canal: canal subjacente também pode
perder pacotes (dados, ACKs)
• checksum, nos. de sequência, ACKs, retransmisssões poderão
ajudar… mas, não são suficientes
temporizador
Espera Espera
chamada 0 por
de cima ACK0
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) rdt_rcv(rcvpkt)
&& isACK(rcvpkt,1) && notcorrupt(rcvpkt)
stop_timer && isACK(rcvpkt,0)
stop_timer
Espera Espera
por chamada 1
ACK1 de cima
rdt_send(data)
sndpkt = make_pkt(1, data, checksum)
udt_send(sndpkt)
start_timer
L/R L/R
Utransm=
RTT + L / R
0,008 RTT
=
30,008
= 0,00027
3L / R 0,0024
U = = = 0,00081
transm 30,008
RTT + L / R
Transport Layer: 3-66
Go-Back-N: transmissor
§ transmissor: “janela” de até N, pctes consecutivos transmitidos, mas não
reconhecidos
• no. de seq. de k-bits no cabeçalho do pacote
já autorizado, mas
reconhecido ainda não enviado
enviado, mas não autorizado
ainda não
reconhecido
rcv_base
não recebido
Transport Layer: 3-68
Go-Back-N em ação
janela transmissor (N=4) transmissor receptor
012345678 send pkt0
012345678 send pkt1
send pkt2 receive pkt0, send ack0
012345678
012345678 send pkt3 Xloss receive pkt1, send ack1
(wait)
receive pkt3, discard,
012345678 rcv ack0, send pkt4 (re)send ack1
012345678 rcv ack1, send pkt5 receive pkt4, discard,
(re)send ack1
ignore duplicate ACK receive pkt5, discard,
(re)send ack1
timeout
012345678 send pkt2
012345678 send pkt3
012345678 send pkt4 rcv pkt2, deliver, send ack2
012345678 send pkt5 rcv pkt3, deliver, send ack3
rcv pkt4, deliver, send ack4
rcv pkt5, deliver, send ack5
Fora de ordem
(no buffer), mas Aceitável (dentro
já reconhecido da janela)
Aguardado, mas Não autorizado
ainda não
recebido
seletiva: dilema!
0123012 pkt0
0123012 pkt1 0123012
0123012 pkt2 0123012
exemplo:
0123012
0123012 pkt3
X
0123012
§ nos. seq: 0, 1, 2, 3 (base 4) pkt0 aceitará pacote com
no. de sequência 0
§ tam. da janela = 3 (a) Nenhum problema
0123012 pkt0
0123012 pkt1 0123012
0123012 pkt2 X 0123012
X 0123012
X
timeout
retransmit pkt0
0123012 pkt0
aceitará pacote com
no. de sequência 0
(b) oops!
Transport Layer: 3-74
Retransmissão
janela do transmissor janela do receptor
(após recepção) (após recepção)
seletiva: dilema!
0123012 pkt0
0123012 pkt1 0123012
0123012 pkt2 0123012
§ comportamento
do receptor é
idêntico nos dois
0casos!
123012 pkt0
Q: qual o relacionamento § 0algo
1 2 3 0está
1 2 (muito)
pkt1 0123012
0errado!
necessário entre o tamanho do 123012 pkt2 X
X
0123012
número de sequência e o
0123012
X
tamanho da janela para evitar timeout
retransmit pkt0
o problema do cenário (b)? 0123012 pkt0
aceitará pacote com
no. de sequência 0
(b) oops!
Transport Layer: 3-75
Capítulo 3: roteiro
§ Serviços da camada de transporte
§ Multiplexação e demultiplexação
§ Transporte sem conexões: UDP
§ Princípios da transferência confiável
§ Transporte orientado a conexões: TCP
• estrutura do segmento
• transferência confiável de dados
• controle de fluxo
• gerenciamento da conexão
§ Princípios de controle de
congestionamento
§ Controle de congestionamento no TCP
§ Evolução da funcionalidade da camada
de transporte
Transport Layer: 3-76
TCP: visão geral RFCs: 793,1122, 2018, 5681, 7323
§ ponto-a-ponto: § ACKs cumulativos
• um transmissor, um receptor § paralelismo:
§ fluxo de bytes ordenados, • controle de congestionamento e
de fluxo determinam tamanho da
confiável: janela
• sem “limites de msgs” § orientado a conexões:
§ dados full duplex: • handshaking (troca de mensagens
• fluxo bidirecional de dados na de controle) inicializa estados do
mesma conexão transmissor, receptor antes da
troca de dados
• MSS: tamanho máximo do
segmento § fluxo controlado:
• transmissor não inundará o
receptor
Transport Layer: 3-77
Estrutura do segmento TCP
32 bits
Usuário digita‘C’
Seq=42, ACK=79, data = ‘C’
hospedeiro reconhece
recebimento do‘C’,
Seq=79, ACK=43, data = ‘C’ ecoa‘C’
Hospedeiro reconhece
recebimento do
‘C’ecoado Seq=43, ACK=80
300
RTT (milisegundos)
RTT (milliseconds)
250
200
150
sampleRTT
EstimatedRTT
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
tempo (segundos)
time (seconnds)
Transport Layer: 3-82
SampleRTT Estimated RTT
TCP: tempo de ida e volta, temporizador
§ intervalo temporizador: EstimatedRTT mais “margem de segurança”
• grandes variações no EstimatedRTT: maior margem de segurança
TimeoutInterval = EstimatedRTT + 4*DevRTT
SendBase=92
Seq=92, 8 bytes de dados Seq=92, 8 bytes de dados
timeout
ACK=100
X
ACK=100
ACK=120
SendBase=120
Seq=120, 15 de dados
timeout
reconhecido com menor no. de seq. os
X
§ provavelmente o segmento não
reconhecido se perdeu, não =100
A CK
espera pelo temporizador
C K =100
A
timeout
C K =100
A
=100
Recepção de três ACKs A C K
do transmissor
do transmissor
janela recepção
controle de fluxo: no.
bytes que o receptor está código
disposto a receber IP
do transmissor
rede rede
Vamos
Q: a apresentação em duas vias
conversar sempre funciona em redes?
ESTAB
OK § atrasos variáveis
ESTAB
§ mensagens retransmitidas (ex.
req_conn(x)) devido à perda de
mensagem
escolhe x § reordenação de mensagens
req_conn(x)
ESTAB § não consegue “ver” o outro lado
acc_conn(x)
ESTAB
escolhe x
req_conn(x)
ESTAB
acc_conn(x)
ESTAB
data(x+1) aceita
data(x+1)
ACK(x+1)
término da
conexão x
Sem problemas!
escolhe x
req_conn(x)
ESTAB
retransmite acc_conn(x)
req_conn(x)
ESTAB
req_conn(x)
término da
cliente conexão x servidor
encerra esquece x
ESTAB
acc_conn(x)
Problema: conexão aberta
pela metade! (sem cliente)
Transport Layer: 3-99
Cenários de apresentação de 2 vias
escolhe x
req_conn(x)
ESTAB
retransmite acc_conn(x)
req_conn(x)
ESTAB
data(x+1) aceita
data(x+1)
retransmite
data(x+1)
término da
conexão x servidor
cliente
encerra esquece x
req_conn(x)
ESTAB
data(x+1) aceita
data(x+1)
Problema: aceita
dados duplicados!
Apresentação de três vias do TCP
Estado do servidor
Estado do cliente
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind((‘’,serverPort))
serverSocket.listen(1)
clientSocket = socket(AF_INET, SOCK_STREAM) connectionSocket, addr = serverSocket.accept()
LISTEN
clientSocket.connect((serverName,serverPort)) LISTEN
escolhe no. seq inicial, x
envia msg TCP SYN
SYNSENT SYNbit=1, Seq=x
escolhe no. seq inicial, y
envia msg TCP SYNACK,
reconhecendo o SYN SYN RCVD
SYNbit=1, Seq=y
ACKbit=1; ACKnum=x+1
SYNACK(x) recebido
ESTAB indica servidor ativo;
envia ACK para SYNACK;
este segmento pode conter ACKbit=1, ACKnum=y+1
dados do cliente para servidor
ACK(y) recebido
indica cliente ativo
ESTAB
1. On belay?
2. Belay on.
3. Climbing.
§ dois fluxos
R R
§ sem retransmissões
Host B
R/2
Q: O que acontece
lout
atraso
quando a taxa de
chegada lin
vazão:
R R
lout
§ transmissor envia apenas quando houver buffer
disponível no roteador
vazão:
Host A lin : dados originais lin
copy l'in: dados originais, mais lout R/2
dados retransmitidos
R R
R R
lout
retransmissões
§ pacotes podem ser perdidos (descartados no
roteador) devido a buffers cheios ao transmitir a R/2,
§ transmissor sabe quando pacote foi descartado: alguns pacotes
vazão:
retransmite apenas se o pacote sabidamente se necessitam
perdeu retransmissões
R R
lout
“desperdiçada” com
roteador, buffers cheios – requer retransmissões retransmissões
desnecessárias
§ mas, temporizador pode estourar prematuramente
vazão:
enviando duas cópias, ambas entregues ao transmitir a R/2,
alguns pacotes são
retransmissões,
incluindo duplicatas
Host A lin : dados originais lin
necessárias e
desnecessárias,
R/2
timeout
copy l'in: dados originais, mais que são entregues!
dados retransmitidos
R R
lout
“desperdiçada” com
roteador, buffers cheios – requer retransmissões retransmissões
desnecessárias
§ mas, temporizador pode estourar prematuramente
vazão:
enviando duas cópias, ambas entregues ao transmitir a R/2,
alguns pacotes são
retransmissões,
incluindo duplicatas
nedessárias e
lin R/2 desnecessárias,
que são entregues!
“custos” do congestionamento:
vazão no receptor
§ mais trabalho (retransmissões) para uma dada
§ retransmissões desnecessárias: enlace transporta múltiplas cópias do
pacote
• diminuido a vazão máxima alcançável
Host D
lout
Host C
lin’ R/2
throughput: lout
lin R/2
delay
R/2
lin R/2
loutthroughput:
efetiva
lin R/2 R/2
throughput: lout
mais a vazão efetiva
R/2
lin
§ capacidade de transmissão/buffer
R/2
lout
desperdiçados com pacotes perdidos mais
“abaixo” lin’ R/2
Comportamento de
dente de serra do AIMD:
testando a largura de banda
RTT
• inicialmente cwnd = 1 MSS dois segm
entos
• duplica cwnd a cada RTT
• através do incremento de cwnd
para cada ACK recebido quatro seg
mentos
Janela de congestionamento
valor antes do estouro do
(em segmentos)
temporizador
Implementação:
§ limiar variável ssthresh
§ num evento de perda, ssthresh
passa a ser 1/2 de cwnd Rodada de transmissão (RTTs)
imediatamente antes do evento de
perda
ção
rápida
duplicate ACK
cwnd = cwnd + MSS
transmite novos segmentos, como permitido
Transport Layer: 3-124
TCP CUBIC
§ Há uma melhor forma do que AIMD para “testar” banda disponível?
§ Insight/intuição:
• Wmax: taxa de transmissão na qual a perda por congestionamento foi detetada
• estado de congestionamento do gargalo provavelmente (?) não mudou muito
• após cortar a taxa/janela pela metade com a perda, inicialmente cresce mais
rápido, mas cresce mais lentamente ao se aproximar de Wmax
tempo
time
t0 t1 t2 t3 t4
Transport Layer: 3-126
TCP e o enlace “gargalo” congestionado
§ TCP (clássico, CUBIC) aumenta a taxa de transmissão do TCP até que
ocorra a perda de pacote na saída de algum roteador: o enlace gargalo
origem destino
aplicação aplicação
TCP TCP
rede rede
enlace enlace
física física
fila de pacotes quase
nunca está vazia, algumas
vezes descarta pacotes
ECN=10 ECN=11
datagrama IP
Transport Layer: 3-131
TCP: equidade (fairness)
Objetivo da equidade: se K sessões TCP compartilham o
mesmo enlace de gargalo com largura de banda R, cada um
deve obter uma taxa média de R/K
conexão TCP 1
roteador
conexão TCP 2 gargalo com
capacidade R
vazão da conexão 1 R
Transport Layer: 3-133
Todas as apps de rede devem ser “justas”?
Justiça e UDP Justiça, conexões TCP em
§ apps multimídia em geral não paralelo
usam TCP § aplicação pode abrir múltiplas
• não querem que a taxa seja limitada conexões em paralelo entre dois
pelo controle de congestionamento
hospedeiros
§ em geral usam UDP:
• enviam áudio/vídeo em taxas
§ navegadores web fazem isso, ex.,
constantes, toleram perda de pacotes enlace de taxa R com 9 conexões
§ não há nenhuma “polícia Internet” existentes:
policiando o uso do controle de • nova app pede 1 TCP, obtém taxa
congestionamento R/10
• nova app pede 11 TCPs, obtém R/2
Rede IP IP
saudação TCP
(camada de transporte) saudação QUIC
dados
saudação TLS
(segurança)
dados
HTTP HTTP
GET GET
HTTP
GET QUIC QUIC QUIC QUIC QUIC QUIC
encrypt encrypt encrypt encrypt encrypt encrypt
QUIC QUIC QUIC QUIC QUIC QUIC
TLS encryption TLS encryption RDT RDT RDT RDT
error!
RDT RDT
(a) HTTP 1.1 (b) HTTP/2 com QUIC: sem bloqueio HOL
Transport Layer: 3-140
Capítulo 3: resumo
§ Princípios por trás dos A seguir:
serviços da camada de § deixaremos a “borda” da
transporte:
• multiplexação, demultiplexação rede (camadas aplicação,
transporte)
• transferência (confiável) de
dados § Entraremos no “núcleo”
• controle de fluxo da rede
• controle de congestionamento
§ dois capítulos sobre a
§ instanciação, implementação camada de rede:
na Internet
• plano de dados
• UDP
• TCP • plano de controle
SYN
SYN sent
rcvd
SYNACK(seq=y,ACKnum=x+1)
ESTAB
ACK(ACKnum=y+1) ACK(ACKnum=y+1)
L
LAST_ACK
FINbit=1, seq=y
TIMED_WAIT não pode mais
enviar dados
ACKbit=1; ACKnum=y+1
espera temporizada
por 2*tempo máximo CLOSED
de vida do segmento
CLOSED
3 W
vazão média TCP = bytes/seg
4 RTT
W
W/2
TCP sobre “tubos longos e largos”
§ exemplo: segmentos de 1500 bytes, RTT de 100ms, deseja vazão de 10
Gbps
§ requer janela de W = 83.333 segmentos em trânsito
§ vazão em termos da probabilidade de perda de segmentos, L [Mathis 1997]:
vazão do TCP = 1,22 . MSS
RTT L