camadas de transmissÃo de dados - .::dcc · • transferência de dados confiável • controle de...
TRANSCRIPT
Capiacutetulo3
Redes de computadores e a Internet
Camadade
transporte
3
3 - 2
Pilha de protocolos da Internet
Aplicaccedilatildeo
Transporte
Rede
Enlace
Fiacutesica
M
M
M
M
Ht
Ht
Ht
Hr
HrHe
Mensagem
Segmento
Datagrama
Quadro
HTTP SMTP FTP DNS
UDP TCP
3
3 - 3
Objetivos do capiacutetulo bull Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Aprender sobre os protocolos de transporte na Internetbull UDP transporte natildeo orientado agrave conexatildeobull TCP transporte orientado agrave conexatildeobull Controle de congestionamento do TCP
Camada de transporte
3
3 - 4
Camada de transporte
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3
3 - 5
bull Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
bull Os protocolos de transporte satildeo executados nos sistemas finais
bull Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
bull Lado receptor remonta os segmentos em mensagens e
passa para a camada de aplicaccedilatildeo
bull Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildeesbull Internet TCP e UDP
Protocolos e serviccedilos de transporte
3
3 - 6
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros
bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar
12 crianccedilas enviam cartas para 12 crianccedilas
bull Processos = crianccedilas
bull Mensagens da aplicaccedilatildeo = cartas nos envelopes
bull Hospedeiros = casas
bull Protocolo de transporte = Anna e Bill
bull Protocolo da camada de rede = Serviccedilo Postal
Camada de transporte vs camada de rede
3
3 - 7
bull Confiaacutevel garante ordem de entrega TCP
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entrega UDP
bull Extensatildeo do ldquomelhor esforccedilordquo do IP
Protocolos da camada de transporte da Internet
3
3 - 8
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 9
Demultiplexaccedilatildeo no hospedeiro receptor
entrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissor
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 10
Mecanismo de endereccedilamento
Transporte
Aplicaccedilatildeo
80 53 25 n
TCP UDP
HTTP DNS SMTP x
web
TRANSPORTE VIRTUAL
ftp
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 2
Pilha de protocolos da Internet
Aplicaccedilatildeo
Transporte
Rede
Enlace
Fiacutesica
M
M
M
M
Ht
Ht
Ht
Hr
HrHe
Mensagem
Segmento
Datagrama
Quadro
HTTP SMTP FTP DNS
UDP TCP
3
3 - 3
Objetivos do capiacutetulo bull Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Aprender sobre os protocolos de transporte na Internetbull UDP transporte natildeo orientado agrave conexatildeobull TCP transporte orientado agrave conexatildeobull Controle de congestionamento do TCP
Camada de transporte
3
3 - 4
Camada de transporte
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3
3 - 5
bull Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
bull Os protocolos de transporte satildeo executados nos sistemas finais
bull Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
bull Lado receptor remonta os segmentos em mensagens e
passa para a camada de aplicaccedilatildeo
bull Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildeesbull Internet TCP e UDP
Protocolos e serviccedilos de transporte
3
3 - 6
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros
bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar
12 crianccedilas enviam cartas para 12 crianccedilas
bull Processos = crianccedilas
bull Mensagens da aplicaccedilatildeo = cartas nos envelopes
bull Hospedeiros = casas
bull Protocolo de transporte = Anna e Bill
bull Protocolo da camada de rede = Serviccedilo Postal
Camada de transporte vs camada de rede
3
3 - 7
bull Confiaacutevel garante ordem de entrega TCP
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entrega UDP
bull Extensatildeo do ldquomelhor esforccedilordquo do IP
Protocolos da camada de transporte da Internet
3
3 - 8
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 9
Demultiplexaccedilatildeo no hospedeiro receptor
entrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissor
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 10
Mecanismo de endereccedilamento
Transporte
Aplicaccedilatildeo
80 53 25 n
TCP UDP
HTTP DNS SMTP x
web
TRANSPORTE VIRTUAL
ftp
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 3
Objetivos do capiacutetulo bull Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Aprender sobre os protocolos de transporte na Internetbull UDP transporte natildeo orientado agrave conexatildeobull TCP transporte orientado agrave conexatildeobull Controle de congestionamento do TCP
Camada de transporte
3
3 - 4
Camada de transporte
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3
3 - 5
bull Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
bull Os protocolos de transporte satildeo executados nos sistemas finais
bull Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
bull Lado receptor remonta os segmentos em mensagens e
passa para a camada de aplicaccedilatildeo
bull Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildeesbull Internet TCP e UDP
Protocolos e serviccedilos de transporte
3
3 - 6
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros
bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar
12 crianccedilas enviam cartas para 12 crianccedilas
bull Processos = crianccedilas
bull Mensagens da aplicaccedilatildeo = cartas nos envelopes
bull Hospedeiros = casas
bull Protocolo de transporte = Anna e Bill
bull Protocolo da camada de rede = Serviccedilo Postal
Camada de transporte vs camada de rede
3
3 - 7
bull Confiaacutevel garante ordem de entrega TCP
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entrega UDP
bull Extensatildeo do ldquomelhor esforccedilordquo do IP
Protocolos da camada de transporte da Internet
3
3 - 8
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 9
Demultiplexaccedilatildeo no hospedeiro receptor
entrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissor
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 10
Mecanismo de endereccedilamento
Transporte
Aplicaccedilatildeo
80 53 25 n
TCP UDP
HTTP DNS SMTP x
web
TRANSPORTE VIRTUAL
ftp
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 4
Camada de transporte
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3
3 - 5
bull Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
bull Os protocolos de transporte satildeo executados nos sistemas finais
bull Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
bull Lado receptor remonta os segmentos em mensagens e
passa para a camada de aplicaccedilatildeo
bull Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildeesbull Internet TCP e UDP
Protocolos e serviccedilos de transporte
3
3 - 6
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros
bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar
12 crianccedilas enviam cartas para 12 crianccedilas
bull Processos = crianccedilas
bull Mensagens da aplicaccedilatildeo = cartas nos envelopes
bull Hospedeiros = casas
bull Protocolo de transporte = Anna e Bill
bull Protocolo da camada de rede = Serviccedilo Postal
Camada de transporte vs camada de rede
3
3 - 7
bull Confiaacutevel garante ordem de entrega TCP
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entrega UDP
bull Extensatildeo do ldquomelhor esforccedilordquo do IP
Protocolos da camada de transporte da Internet
3
3 - 8
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 9
Demultiplexaccedilatildeo no hospedeiro receptor
entrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissor
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 10
Mecanismo de endereccedilamento
Transporte
Aplicaccedilatildeo
80 53 25 n
TCP UDP
HTTP DNS SMTP x
web
TRANSPORTE VIRTUAL
ftp
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 5
bull Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros
bull Os protocolos de transporte satildeo executados nos sistemas finais
bull Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede
bull Lado receptor remonta os segmentos em mensagens e
passa para a camada de aplicaccedilatildeo
bull Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildeesbull Internet TCP e UDP
Protocolos e serviccedilos de transporte
3
3 - 6
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros
bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar
12 crianccedilas enviam cartas para 12 crianccedilas
bull Processos = crianccedilas
bull Mensagens da aplicaccedilatildeo = cartas nos envelopes
bull Hospedeiros = casas
bull Protocolo de transporte = Anna e Bill
bull Protocolo da camada de rede = Serviccedilo Postal
Camada de transporte vs camada de rede
3
3 - 7
bull Confiaacutevel garante ordem de entrega TCP
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entrega UDP
bull Extensatildeo do ldquomelhor esforccedilordquo do IP
Protocolos da camada de transporte da Internet
3
3 - 8
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 9
Demultiplexaccedilatildeo no hospedeiro receptor
entrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissor
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 10
Mecanismo de endereccedilamento
Transporte
Aplicaccedilatildeo
80 53 25 n
TCP UDP
HTTP DNS SMTP x
web
TRANSPORTE VIRTUAL
ftp
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 6
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros
bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar
12 crianccedilas enviam cartas para 12 crianccedilas
bull Processos = crianccedilas
bull Mensagens da aplicaccedilatildeo = cartas nos envelopes
bull Hospedeiros = casas
bull Protocolo de transporte = Anna e Bill
bull Protocolo da camada de rede = Serviccedilo Postal
Camada de transporte vs camada de rede
3
3 - 7
bull Confiaacutevel garante ordem de entrega TCP
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entrega UDP
bull Extensatildeo do ldquomelhor esforccedilordquo do IP
Protocolos da camada de transporte da Internet
3
3 - 8
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 9
Demultiplexaccedilatildeo no hospedeiro receptor
entrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissor
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 10
Mecanismo de endereccedilamento
Transporte
Aplicaccedilatildeo
80 53 25 n
TCP UDP
HTTP DNS SMTP x
web
TRANSPORTE VIRTUAL
ftp
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 7
bull Confiaacutevel garante ordem de entrega TCP
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entrega UDP
bull Extensatildeo do ldquomelhor esforccedilordquo do IP
Protocolos da camada de transporte da Internet
3
3 - 8
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 9
Demultiplexaccedilatildeo no hospedeiro receptor
entrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissor
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 10
Mecanismo de endereccedilamento
Transporte
Aplicaccedilatildeo
80 53 25 n
TCP UDP
HTTP DNS SMTP x
web
TRANSPORTE VIRTUAL
ftp
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 8
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 9
Demultiplexaccedilatildeo no hospedeiro receptor
entrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissor
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 10
Mecanismo de endereccedilamento
Transporte
Aplicaccedilatildeo
80 53 25 n
TCP UDP
HTTP DNS SMTP x
web
TRANSPORTE VIRTUAL
ftp
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 9
Demultiplexaccedilatildeo no hospedeiro receptor
entrega os segmentos recebidos ao socket correto
Multiplexaccedilatildeo no hospedeiro emissor
coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
3
3 - 10
Mecanismo de endereccedilamento
Transporte
Aplicaccedilatildeo
80 53 25 n
TCP UDP
HTTP DNS SMTP x
web
TRANSPORTE VIRTUAL
ftp
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 10
Mecanismo de endereccedilamento
Transporte
Aplicaccedilatildeo
80 53 25 n
TCP UDP
HTTP DNS SMTP x
web
TRANSPORTE VIRTUAL
ftp
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 11
Mecanismo de endereccedilamento
Mecanismos de endereccedilamento na camada de transporte
bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta
bullDiscrimina entre os muitos processos que podem rodar simultaneamente
bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)
bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535
bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 12
Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte
‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)
‑IANA (Internet Assigned Number Authority)
‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas
‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo
‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo
0 1023
1024 49151
49152 65535
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 13
Exemplo de endereccedilamento
Este eacute o pedido
ServidorCliente
Processo
Socket
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 14
bull Cria sockets com nuacutemeros de porta
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 15
Exemplo de endereccedilamento
ServidorCliente A
Porta Fonte50001
Porta destino25
Porta Fonte25
Porta destino50001
Cliente B
Porta Fonte50001
Porta destino25
IP FonteX
IP destinoY
Porta Fonte25
Porta destino50001
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 16
clienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
PD 6428
PF 9157
PD 9157
PF 6428
PD 6428
PF 5775
PD 5775
PF 6428
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
Orientados ao mesmo processo destino por meio do mesmo socket
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 17
bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 18
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
P5 P6 P3
PF 9157
PD 80
PF 9157
PD 80
IP-DC
IP-F A
IP-DC
IP-F B
PF 5775
PD 80
IP-DC
IP-F B
Demultiplexaccedilatildeo orientada agrave conexatildeo
O socket TCP eacute identificado pelos quatro elementos
IP FonteA
IP destinoB
Porta FonteX
Porta destinoY
Demultiplexaccedilatildeo da camada de transporte
Processos HTTP por conexatildeo
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 19
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPC
S-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
Demultiplexaccedilatildeo da camada de transporte
Processo uacutenico com trecircs thread
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 20
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 21
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo
bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser
bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeo
bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros
Por que existe um UDP
bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no
receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo
raacutepido quanto desejado
UDP User Datagram Protocol [RFC 768]
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 22
Mais sobre UDP
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 23
Aplicaccedilatildeo
Transporte
M
MHt
Mensagem
Segmento
HTTP SMTP FTP DNS
UDP
Cabeccedilalho da camada de transmissatildeo
Mensagem
Segmento UDP
Mais sobre UDP
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 24
bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)
bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo
bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo
Mais sobre UDP
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 25
Estrutura do segmento UDP
Source port Destination port
Length Checksum
Dados da camada de aplicaccedilatildeo(mensagem)
32 bitsbull RFC 768
bull Identificaccedilatildeo das portas
bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho
bull Soma de verificaccedilatildeo ndash RFC 1071
bull Dados
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 26
Segmento UDP 01
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 27
Segmento UDP 02
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 28
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido
Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP
Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum
bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso
UDP checksum
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 29
Soma de verificaccedilatildeo UDP ndash RFC 1071
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
Suponha 3 palavras de 16 bits
A soma das duas primeiras palavras de 16 bits eacute
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)
+
Adicionando a terceira palavra agrave soma (IV) temos
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)
+
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 30
bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo
deve ser acrescentado ao resultado
1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)
wraparound
Exemplo Soma de verificaccedilatildeo UDP
sum
checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 31
Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 32
Exerciacutecio 02
Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 33
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 34
bull Importante nas camadas de aplicaccedilatildeo transporte e enlace
bull Top 10 na lista dos toacutepicos mais importants de redes
bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados
Princiacutepios de transferecircncia confiaacutevel de dados
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 35
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem
Envia mensagem
Remetente Destinataacuterio
Recebe mensagem
Envia ack
Recebe ackEnvia mensagem
Recebe mensagem
Envia nak
Recebe nak
Recebe mensagem
Envia ack
Recebe ack
bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos
utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)
bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente
bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros
bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 36
Princiacutepios de transferecircncia confiaacutevel de dados
bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)
bull Pilaresbull Envio de dados pelo gerador
bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)
bull Retransmissatildeo
bull Temporizaccedilatildeo
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 37
Temporizador
Envia mensagem
Remetente Destinataacuterio
Mensagem chega
ack deveria ser enviado
Aguardando ack
timeout
Retransmite mensagem Recebe mensagem
Envia ack
Recebe ack
Zera temporizador
Envia mensagem
Tem
pori
zad
or
Tem
pori
zad
or
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 38
Mensagem duplicada
Envia mensagem
Remetente Destinataacuterio
Mensagem recebida
Envio de ack
Ack natildeo chega
Nak corrompido
Retransmite mensagem Novos dados
Retransmissatildeo
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 39
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada
pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes
duplicados
Tratamento de duplicatas
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 40
Princiacutepios de transferecircncia confiaacutevel de dados
Retransmite mensagem 2
Envia mensagem 1
Remetente Destinataacuterio
Recebe mensagem 1Enviar ack1
Recebe ack1Envia mensagem 2
Recebe mensagem 2Envia nak2
Receber nak2
Receber mensagem 2Enviar ack2
Recebe ack2
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 41
T transmissatildeo = 8 kbit1 Gbits
= 8micros
bull U efetiva ocupaccedilatildeo efetiva
bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes
de 1 KB
Desempenho
Uefetiva =30008
= 027Uso efetivoTempo total
=LRRTT + LR
8micros=
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 42
Desempenho
Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 43
Protocolo com paralelismo
Motivaccedilatildeo
bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)
Transmissotildees muacuteltiplas bull Protocolo com paralelismo
Pacote de dados
Pacote de dados
Pacotes ACK
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 44
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
Protocolo com paralelismo (pipelining)
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 45
Janela Deslizante
Envia mensagem 1
Remetente Destinataacuterio
Envia mensagem 2
Envia mensagem 3
Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3
Janela inicial
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 Janela de
tamanho = 3
R D
Janela desliza
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 46
Usender=
3 L R
RTT + L R
Paralelismo aumento da utilizaccedilatildeo
Aumento da utilizaccedilatildeopor um fator de 3
Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 47
Processo de recuperaccedilatildeo de erros com paralelismo
bullGo-Back-N (GBN)
bullRepeticcedilatildeo seletiva (SR)
Recuperaccedilatildeo de Erro com Paralelismo
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 48
Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo
bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela
Go-Back-N
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 49
GBN em accedilatildeo
Envia pkt0
Envia pkt1
Envia pkt2
Envia pkt3
(espera)
Recebe ack0
Envia pkt4
Recebe ack1
Envia pkt5
pkt2 temporizaccedilatildeo
Envia pkt2Envia pkt3Envia pkt4Envia pkt5
Remetente Destinataacuterio
perda
Recebe pkt0Envia ack0Recebe pkt1Envia ack1
Recebe pkt3 descartaEnvia ack1
Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0
Transmissor
Transmissor
Transmissor
Receptor
Receptor
Receptor
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 50
bull Receptor reconhece individualmente todos os pacotes recebidos corretamente
bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido
bull Transmissor temporiza cada pacote natildeo reconhecido
bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo
reconhecidos
Retransmissatildeo seletiva
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 51
Retransmissatildeo seletiva janelas do transmissor e do receptor
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 52
TRANSMISSORDados da camada superior
ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior
Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer
ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o
proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido
RECEPTORPacote n
- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)
avanccedila janela para o proacuteximo pacote ainda natildeo recebido
Retransmissatildeo seletiva
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 53
Retransmissatildeo seletiva em accedilatildeo
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 54
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 55
bull Ponto-a-pontobull Um transmissor um receptor
bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo
bull Controle de congestionamento e de fluxo definem tamanho da janela
bull Buffers de transmissatildeo e de recepccedilatildeo
bull Dados full-duplexbull Transmissatildeo bidirecional na
mesma conexatildeobull MSS maximum segment size
bull Orientado agrave conexatildeo bull three way handshake
(apresentaccedilatildeo de trecircs vias)
bull Controle de fluxobull Transmissor natildeo esgota a
capacidade do receptor
TCP overview RFCs 793 1122 1323 2018 2581
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 56
URG dados urgentes (pouco usados)
ACK campo de ACKeacute vaacutelido
PSH indica que os dados devem ser enviados
imediatamente para a camada superior
(pouco usado)
(1) RST SYN FINestabelec de conexatildeo
(comandos de criaccedilatildeo e teacutermino)
(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)
(32) contagem porbytes de dados(natildeo segmentos)
(16) Checksum(como no UDP)
Estrutura do segmento TCP
RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo
Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 57
Estrutura do segmento TCP
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 58
Nuacutemero de sequumlecircncia e reconhecimento
0 1 1000 1999 499999
Dados para o primeiro semento
Dados para o segundo semento
Envia pkt
Remetente Destinataacuterio
Recebe pktEnvia pkt
Seq = 0 ACK = 79 Dados
Seq = 79 ACK 1000 Dados
Seq = 1000 ACK 159 Dados
MSS = 1000 bytes
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 59
Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte
nos segmentos de dados
ACKbull Nuacutemero do proacuteximo byte
esperado do outro lado
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 60
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 61
Nuacutemero de sequumlecircncia e ACK do TCP
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 62
P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute
a respectiva confirmaccedilatildeo
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
TCP Round Trip Time e temporizaccedilatildeo
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 63
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma
exponencial bull Valor recomendado α = 0125 (RFC 2988)
TCP Round Trip Time e temporizaccedilatildeo
EstimatedRTT = valor ponderado dos valores de SampleRTT
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 64
Exemplos de estimativa do RTT
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 65
Definindo a temporizaccedilatildeo
bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de
seguranccedila
bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT
DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|
(typically β = 025)
Entatildeo ajustar o intervalo de temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + 4DevRTT
TCP Round Trip Time e temporizaccedilatildeo
TimeoutInterval = EstimatedRTT + β
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 66
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 67
bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP
bull Pipelined segments (segmentos numerados)
bull ACKs cumulativos
bullTCP usa tempo de retransmissatildeo
bull Retransmissotildees disparadas
bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida
TCP transferecircncia de dados confiaacutevel
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 68
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
TCP cenaacuterios de retransmissatildeo
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 69
Cenaacuterio de ACK cumulativo
TCP cenaacuterios de retransmissatildeo
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 70
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados
bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido
bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar
Retransmissatildeo raacutepida
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 71
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 72
bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo
Controle de fluxo
TCP controle de fluxo
Espaccedilo disponiacutevel
DadosTCP
no buffer
Dados vindos da camada de rede
Processo deaplicaccedilatildeo
Buffer de recepccedilatildeo
Janela de recepccedilatildeo
bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais
bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 73
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 74
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo
bull Cliente iniciador da conexatildeo
bull Servidor chamado pelo cliente
Three way handshake
Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
Gerenciamento de conexatildeo TCP
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 75
Fechando uma conexatildeo
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
Passo 3 cliente recebe FIN responde com ACK
bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos
Passo 4 servidor recebe ACK Conexatildeo fechada
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 76
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 77
Congestionamento
bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
Princiacutepios de controle de congestionamento
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 78
bull Dois transmissores dois receptores
bull Um roteador buffers infinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos
quando congestionadobull Maacutexima vazatildeo
alcanccedilaacutevel
Causascustos do congestionamento cenaacuterio 1
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 79
bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos
Causascustos do congestionamento cenaacuterio 2
finitos
λin= dados originais mais dados retransmitidos
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 80
bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior
(que o caso perfeito ) para o mesmo
Causascustos do congestionamento cenaacuterio 2
λin
λout
=
λinλ
out
ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias
do mesmo pacote
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 81
Existem duas abordagens gerais para o problema de controle de congestionamento
Controle de congestionamento fim-a-fim
bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela rede
bull Roteadores enviam informaccedilotildees para os sistemas finais
bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)
bull Taxa expliacutecita do transmissor poderia ser enviada
Abordagens do produto de controle de congestionamento
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 82
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 83
bull Controle fim-a-fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas
Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
TCP controle de congestionamento
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 84
Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda
Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda
TCP AIMD
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 85
bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda
TCP Partida lenta
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 86
P Quando o aumento exponencial deve tornar-se linear
R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo
Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o
limiar eacute ajustado para 12 do TJC logo antes do evento de perda
Refinamento
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 87
bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio = 075 WRTT
TCP throughput
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 88
bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput
bull Throughput em termos da taxa de perda
bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
LRTT
MSSsdot221
Futuro do TCP
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 89
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
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 90
Equumlidade e UDP
bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP
bull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDP
Equumlidade
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-
3
3 - 91
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
A seguir
bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
Resumo
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
- Slide 49
- Slide 50
- Slide 51
- Slide 52
- Slide 53
- Slide 54
- Slide 55
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- Slide 63
- Slide 64
- Slide 65
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Slide 71
- Slide 72
- Slide 73
- Slide 74
- Slide 75
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Slide 80
- Slide 81
- Slide 82
- Slide 83
- Slide 84
- Slide 85
- Slide 86
- Slide 87
- Slide 88
- Slide 89
- Slide 90
- Slide 91
-