Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 1
Camada de Transporte
Prof Arliones Hoeller
arlioneshoellerifscedubr
abril de 2014
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 2
Objetivos do capiacutetulo Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte
Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Aprender sobre os protocolos de transporte na Internet UDP transporte natildeo orientado agrave conexatildeo TCP transporte orientado agrave conexatildeo Controle de fluxo e congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 4
Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
Os protocolos de transporte satildeo executados nos sistemas finais
Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo
Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP
Protocolos e serviccedilos de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 5
Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos
Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 6
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 7
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com
cabeccedilalho (usado depois para demultiplexar)
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 9
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 10
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 2
Objetivos do capiacutetulo Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte
Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Aprender sobre os protocolos de transporte na Internet UDP transporte natildeo orientado agrave conexatildeo TCP transporte orientado agrave conexatildeo Controle de fluxo e congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 4
Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
Os protocolos de transporte satildeo executados nos sistemas finais
Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo
Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP
Protocolos e serviccedilos de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 5
Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos
Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 6
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 7
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com
cabeccedilalho (usado depois para demultiplexar)
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 9
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 10
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 3
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 4
Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
Os protocolos de transporte satildeo executados nos sistemas finais
Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo
Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP
Protocolos e serviccedilos de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 5
Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos
Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 6
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 7
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com
cabeccedilalho (usado depois para demultiplexar)
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 9
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 10
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 4
Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
Os protocolos de transporte satildeo executados nos sistemas finais
Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo
Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP
Protocolos e serviccedilos de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 5
Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos
Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 6
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 7
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com
cabeccedilalho (usado depois para demultiplexar)
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 9
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 10
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 5
Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos
Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 6
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 7
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com
cabeccedilalho (usado depois para demultiplexar)
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 9
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 10
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 6
Confiaacutevel garante ordem de entrega (TCP)
Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo
Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP
Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda
Protocolos da camada de transporte da Internet
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 7
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com
cabeccedilalho (usado depois para demultiplexar)
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 9
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 10
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 7
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com
cabeccedilalho (usado depois para demultiplexar)
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 9
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 10
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com
cabeccedilalho (usado depois para demultiplexar)
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 9
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 10
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 9
Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)
O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 10
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 10
Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)
Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta
Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 11
DatagramSocket serverSocket = new DatagramSocket(6428)
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP fornece o ldquoendereccedilo de retornordquo 0
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 12
Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
Demux orientada agrave conexatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 15
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 16
Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo
Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado (e possiacutevel)
UDP User Datagram Protocol[RFC 768]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 17
Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa
Outros usos do UDP (por quecirc) DNS SNMP
Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum
NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 20
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 21
Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes
Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 22
Transferecircncia confiaacutevel
bull Como lidar com erros de
bitsResp Com checksum nas
mensagens mensagens de
reconhecimento e retransmissotildees
de pacotes
bull Como lidar com pacotes
duplicadosResp Com nuacutemero de sequecircncia
em cada pacote
bull Como lidar com perdas de pacotes
Resp Com reloacutegios temporizadores e retransmissotildees de pacotes
Canal pode ter erros de bits e perder pacotes
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 53
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 54
Ponto-a-ponto Um transmissor um receptor
Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens
Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela
Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex
Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size
Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do
transmissor e do receptor antes da troca de dados Controle de fluxo
Transmissor natildeo esgota a capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 55
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
nuacutemero de bytes receptor estaacutepronto para aceitar
contagem porbytes de dados(natildeo segmentos)
Internetchecksum
(como no UDP)
Estrutura do segmento TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 56
Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados
ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo
P Como o receptor trata segmentos fora de ordem
A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador
Nuacutemero de sequumlecircncia e ACKs do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 57
P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT
Nota RTT varia
Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias
Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a
Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 58
Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average
Influecircncia de uma dada amostra decresce de forma exponencial
TCP Round Trip Time e temporizaccedilatildeo
RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido
Valor Tiacutepico α=0125
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 59
Exemplos de estimativa do RTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 60
Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TCP Round Trip Time e temporizaccedilatildeo
partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|
Valor Tiacutepico β=025
Timeout=RTT estimado+4timespartRTT
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 61
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo-orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 62
TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP
Pipelined segments
ACKs cumulativos
TCP usa tempo de retransmissatildeo simples
Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados
Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento
TCP transferecircncia de dados confiaacutevel
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 63
Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador
ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados
Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes
Eventos do transmissor TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 65
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 66
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 67
Evento no receptor
Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente
Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado
Chegada de segmento queparcial ou completamentepreenche o gap
Accedilatildeo do receptor TCP
ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap
Geraccedilatildeo de ACK[RFC 1122 RFC 2581]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 68
Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido
Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados
Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 70
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 71
Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo
Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora
Processos de aplicaccedilatildeo podem ser lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
TCP controle de fluxo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 72
(suponha que o receptor TCP descarte segmentos fora de ordem)
Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos
Transmissor limita os dados natildeo confimados ao RcvWindow
Garantia contra overflow no buffer do receptor
Controle de fluxo TCP como funciona
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 73
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)
Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)
Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 75
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento TCP FIN ao servidor
Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 76
Passo 3 cliente recebe FIN responde com ACK
Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos
Gerenciamento de conexatildeo TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 78
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 79
Congestionamento
Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
Diferente de controle de fluxo
Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)
Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 80
Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando
congestionado Maacutexima vazatildeo alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 81
Um roteador buffers finitos
Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 84
Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que
tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
out
Causascustos do congestionamento cenaacuterio 3
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 85
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais
Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 88
31 Serviccedilos da camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado agrave conexatildeo UDP
34 Princiacutepios de transferecircncia confiaacutevel de dados
35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento do TCP
Camada de transporte
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 89
Controle fim-a-fim (sem assistecircncia da rede)
Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente
CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin
RTT Bytessec
TCP controle de congestionamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 90
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing
conexatildeo TCP de longa-vida
TCP AIMD
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 91
Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps
Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 92
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido
Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido
hospedeiro A
um segmentoRTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP Partida lenta
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 93
Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente
Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 94
P Quando o aumento exponencial deve tornar-se linear
R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute
ajustado para 12 do CongWin logo antes do evento de perda
Refinamento
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 97
O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta
Deixe W ser o tamanho da janela quando ocorre perda
Quando a janela eacute W o throughput eacute WRTT
Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
Throughout meacutedio 75 WRTT
TCP throughput
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 98
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
Throughput em termos da taxa de perda
L (probabildiade de perda de segmentos) = 210-10 Uau
Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSS221
Futuro do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 99
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
Equumlidade do TCP
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 100
Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo
Por que o TCP eacute justo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 101
Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP
Natildeo querem a taxa estrangulada pelo controle de congestionamento
Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros
Web browsers fazem isso
Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
Equumlidade
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 102
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido
Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta
Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta
TCP modelagem de latecircncia
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 103
Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados
Janela de congestionamento fixa (1)
atraso = 2xRTT + OR
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 104
Segundo caso WSR lt RTT + SR espera pelo ACK
apoacutes enviar o valor da janela de dados
Janela de congestionamento fixa (2)
atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo
Red
es d
e C
om
pu
tad
ore
s I
Prof Arliones Hoeller 112
Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento
Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP
A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede
Resumo