conceitos de telecomunicaÇÕes e redes de...

64
Redes de Computadores I Prof. Arliones Hoeller 1 Camada de Transporte Prof. Arliones Hoeller [email protected] abril de 2014

Upload: others

Post on 26-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 1

Camada de Transporte

Prof Arliones Hoeller

arlioneshoellerifscedubr

abril de 2014

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 2

Objetivos do capiacutetulo Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte

Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Aprender sobre os protocolos de transporte na Internet UDP transporte natildeo orientado agrave conexatildeo TCP transporte orientado agrave conexatildeo Controle de fluxo e congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 3

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 4

Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

Os protocolos de transporte satildeo executados nos sistemas finais

Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede

Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo

Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP

Protocolos e serviccedilos de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 5

Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos

Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 6

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 7

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 8

Multiplexaccedilatildeodemultiplexaccedilatildeo

Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com

cabeccedilalho (usado depois para demultiplexar)

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 9

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 10

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 2: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 2

Objetivos do capiacutetulo Entender os princiacutepios por traacutes dos serviccedilos da camada de transporte

Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Aprender sobre os protocolos de transporte na Internet UDP transporte natildeo orientado agrave conexatildeo TCP transporte orientado agrave conexatildeo Controle de fluxo e congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 3

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 4

Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

Os protocolos de transporte satildeo executados nos sistemas finais

Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede

Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo

Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP

Protocolos e serviccedilos de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 5

Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos

Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 6

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 7

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 8

Multiplexaccedilatildeodemultiplexaccedilatildeo

Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com

cabeccedilalho (usado depois para demultiplexar)

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 9

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 10

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 3: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 3

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 4

Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

Os protocolos de transporte satildeo executados nos sistemas finais

Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede

Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo

Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP

Protocolos e serviccedilos de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 5

Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos

Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 6

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 7

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 8

Multiplexaccedilatildeodemultiplexaccedilatildeo

Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com

cabeccedilalho (usado depois para demultiplexar)

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 9

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 10

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 4: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 4

Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

Os protocolos de transporte satildeo executados nos sistemas finais

Lado emissor quebra as mensagens da aplicaccedilatildeo em segmentos e envia para a camada de rede

Lado receptor remonta os segmentos em mensagens e passa para a camada de aplicaccedilatildeo

Haacute mais de um protocolo de transporte disponiacutevel para as aplicaccedilotildees Internet TCP e UDP

Protocolos e serviccedilos de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 5

Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos

Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 6

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 7

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 8

Multiplexaccedilatildeodemultiplexaccedilatildeo

Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com

cabeccedilalho (usado depois para demultiplexar)

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 9

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 10

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 5: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 5

Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros Camada de transporte comunicaccedilatildeo loacutegica entre os processos

Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilas Processos = crianccedilas Mensagens da aplicaccedilatildeo = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviccedilo postal

Camada de transporte vs camada de rede

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 6

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 7

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 8

Multiplexaccedilatildeodemultiplexaccedilatildeo

Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com

cabeccedilalho (usado depois para demultiplexar)

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 9

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 10

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 6: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 6

Confiaacutevel garante ordem de entrega (TCP)

Controle de congestionamento Controle de fluxo Orientado agrave conexatildeo

Natildeo confiaacutevel sem ordem de entrega UDP Extensatildeo do ldquomelhor esforccedilordquo do IP

Serviccedilos natildeo disponiacuteveis Garantia a atrasos Garantia de banda

Protocolos da camada de transporte da Internet

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 7

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 8

Multiplexaccedilatildeodemultiplexaccedilatildeo

Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com

cabeccedilalho (usado depois para demultiplexar)

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 9

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 10

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 7: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 7

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 8

Multiplexaccedilatildeodemultiplexaccedilatildeo

Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com

cabeccedilalho (usado depois para demultiplexar)

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 9

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 10

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 8: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 8

Multiplexaccedilatildeodemultiplexaccedilatildeo

Demultiplexaccedilatildeo no hospedeiro receptorEntrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissorColeta dados de muacuteltiplos sockets envelopa os dados com

cabeccedilalho (usado depois para demultiplexar)

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 9

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 10

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 9: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 9

Computador recebe datagramas IP Cada datagrama possui endereccedilo IP de origem e IP de destino Cada datagrama carrega 1 segmento da camada de transporte Cada segmento possui nuacutemeros de porta de origem e destino (lembre-se nuacutemeros de porta bem conhecidos para aplicaccedilotildees especiacuteficas)

O hospedeiro usa endereccedilos IP e nuacutemeros de porta para direcionar o segmento ao socket apropriado

Como funciona a demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 10

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 10: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 10

Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)DatagramSocket mySocket2 = new DatagramSocket(99222)

Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)

Quando o hospedeiro recebe o segmento UDP Verifica o nuacutemero da porta de destino no segmento Direciona o segmento UDP para o socket com este nuacutemero de porta

Datagramas com IP de origem diferentes eou portas de origem diferentes satildeo direcionados para o mesmo socket

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 11: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 11

DatagramSocket serverSocket = new DatagramSocket(6428)

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

SP 6428DP 9157

SP 9157DP 6428

SP 6428DP 5775

SP 5775DP 6428

SP fornece o ldquoendereccedilo de retornordquo 0

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 12: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 12

Socket TCP identificado por 4 valores Endereccedilo IP de origem End porta de origem Endereccedilo IP de destino End porta de destino

Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneos Cada socket eacute identificado pelos seus proacuteprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 13: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 13

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Demux orientada agrave conexatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 14: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 15

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 15: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 16

Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo Serviccedilo ldquobest effortrdquo segmentos UDP podem ser Perdidos Entregues fora de ordem para a aplicaccedilatildeo

Sem conexatildeo Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos) Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptor Cabeccedilalho de segmento reduzido Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado (e possiacutevel)

UDP User Datagram Protocol[RFC 768]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 16: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 17

Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming) Tolerantes agrave perda Sensiacuteveis agrave taxa

Outros usos do UDP (por quecirc) DNS SNMP

Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 17: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 18

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissor Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bits Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor Computa o checksum do segmento recebido Verifica se o checksum calculado eacute igual ao valor do campo checksum

NAtildeO - erro detectado SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip

UDP checksum

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 18: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 20

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 19: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 21

Importante nas camadas de aplicaccedilatildeo transporte e enlace Top 10 na lista dos toacutepicos mais importants de redes

Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados (rdt)

Princiacutepios de transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 20: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 22

Transferecircncia confiaacutevel

bull Como lidar com erros de

bitsResp Com checksum nas

mensagens mensagens de

reconhecimento e retransmissotildees

de pacotes

bull Como lidar com pacotes

duplicadosResp Com nuacutemero de sequecircncia

em cada pacote

bull Como lidar com perdas de pacotes

Resp Com reloacutegios temporizadores e retransmissotildees de pacotes

Canal pode ter erros de bits e perder pacotes

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 21: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 53

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Vestrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 22: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 54

Ponto-a-ponto Um transmissor um receptor

Confiaacutevel sequumlencial byte stream Natildeo haacute contornos de mensagens

Pipelined (transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo) Controle de congestatildeo e de fluxo definem tamanho da janela

Buffers de transmissatildeo e de recepccedilatildeo Dados full-duplex

Transmissatildeo bidirecional na mesma conexatildeo MSS maximum segment size

Orientado agrave conexatildeo Apresentaccedilatildeo (troca de mensagens de controle) inicia o estado do

transmissor e do receptor antes da troca de dados Controle de fluxo

Transmissor natildeo esgota a capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 23: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 55

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH produz envio dedados (pouco usado)

RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

nuacutemero de bytes receptor estaacutepronto para aceitar

contagem porbytes de dados(natildeo segmentos)

Internetchecksum

(como no UDP)

Estrutura do segmento TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 24: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 56

Nuacutemeros de sequumlecircncia Nuacutemero do primeiro byte nos segmentos de dados

ACKs Nuacutemero do proacuteximo byte esperado do outro ladoACK cumulativo

P Como o receptor trata segmentos fora de ordem

A especificaccedilatildeo do TCP natildeo define fica a criteacuterio do implementador

Nuacutemero de sequumlecircncia e ACKs do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 25: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 57

P como escolher o valor da temporizaccedilatildeo do TCP Maior que o RTT

Nota RTT varia

Muito curto temporizaccedilatildeo prematura Retransmissotildees desnecessaacuterias

Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTT SampleRTT tempo medido da transmissatildeo de um segmento ateacute a

Respectiva confirmaccedilatildeo Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa

SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 26: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 58

Meacutedia moacutevel com peso exponencialndash EWMA Exponentially Weighted Moving Average

Influecircncia de uma dada amostra decresce de forma exponencial

TCP Round Trip Time e temporizaccedilatildeo

RTT estimado= (1minusα )timesRTT estimado+αtimesRTT medido

Valor Tiacutepico α=0125

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 27: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 59

Exemplos de estimativa do RTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 28: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 60

Definindo a temporizaccedilatildeo RTTestimado mais ldquomargem de seguranccedilardquo Grandes variaccedilotildees no RTTestimado -gt maior margem de seguranccedila Primeiro estimar o quanto o RTTmedido se desvia do RTTestimado

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TCP Round Trip Time e temporizaccedilatildeo

partRTT= (1minusβ )timespartRTT +βtimes|RTTmedidominusRTT estimado|

Valor Tiacutepico β=025

Timeout=RTT estimado+4timespartRTT

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 29: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 61

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo-orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 30: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 62

TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IP

Pipelined segments

ACKs cumulativos

TCP usa tempo de retransmissatildeo simples

Retransmissotildees satildeo diparadas por Eventos de tempo de confirmaccedilatildeo ACKs duplicados

Inicialmente considere um transmissor TCP simplificado IIgnore ACKs duplicados Ignore controle de fluxo controle de congestionamento

TCP transferecircncia de dados confiaacutevel

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 31: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 63

Dado recebido da app Crie um segmento com nuacutemero de sequumlecircncia seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmento Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no

temporizador para o mais antigo segmento natildeo-confirmado) Tempo de expiraccedilatildeo TimeOutInterval

Tempo de confirmaccedilatildeo Retransmite o segmento que provocou o tempo de confirmaccedilatildeo Reinicia o temporizador

ACK recebido Quando houver o ACK de segmentos anteriormente natildeo confirmados

Atualizar o que foi confirmado Iniciar o temporizador se houver segmentos pendentes

Eventos do transmissor TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 32: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 65

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 33: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 66

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 34: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 67

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 35: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 68

Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longo Longo atraso antes de reenviar um pacote perdido

Detecta segmentos perdidos por meio de ACKs duplicados Transmissor frequumlentemente envia muitos segmentos back-to-back Se o segmento eacute perdido haveraacute muitos ACKs duplicados

Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 36: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 70

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 37: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 71

Lado receptor da conexatildeo TCP possui um buffer de recepccedilatildeo

Serviccedilo de speed-matching encontra a taxa de envio adequada agrave taxa de vazatildeo da aplicaccedilatildeo receptora

Processos de aplicaccedilatildeo podem ser lentos para ler o buffer

Controle de fluxoTransmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

TCP controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 38: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 72

(suponha que o receptor TCP descarte segmentos fora de ordem)

Espaccedilo disponiacutevel no buffer

= RcvWindow

= RcvBuffer-[LastByteRcvd - LastByteRead]

Receptor informa a aacuterea disponiacutevel incluindo valor RcvWindow nos segmentos

Transmissor limita os dados natildeo confimados ao RcvWindow

Garantia contra overflow no buffer do receptor

Controle de fluxo TCP como funciona

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 39: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 73

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 40: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

Inicializar variaacuteveis Nuacutemeros de sequumlecircncia Buffers controle de fluxo (ex RcvWindow)

Cliente iniciador da conexatildeo Socket clientSocket = new Socket(ldquohostnameport number)

Servidor chamado pelo cliente Socket connectionSocket = welcomeSocketaccept()Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidor Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK Reconhece o SYN recebido Aloca buffers Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 41: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 75

Fechando uma conexatildeo

cliente fecha o socket clientSocketclose()

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 42: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 76

Passo 3 cliente recebe FIN responde com ACK

Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

Nota com uma pequena modificaccedilatildeo pode-se manipular FINs simultacircneos

Gerenciamento de conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 43: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 78

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 44: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 79

Congestionamento

Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

Diferente de controle de fluxo

Sintomas Perda de pacotes (saturaccedilatildeo de buffer nos roteadores) Atrasos grandes (filas nos buffers dos roteadores)

Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 45: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 80

Dois transmissores dois receptores Um roteador buffers infinitos Natildeo haacute retransmissatildeo Grandes atrasos quando

congestionado Maacutexima vazatildeo alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 46: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 81

Um roteador buffers finitos

Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 47: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 84

Outro ldquocustordquo do congestionamento Quando o pacote eacute descartado qualquer capacidade de transmissatildeo que

tenha sido anteriormente usada para aquele pacote eacute desperdiccedilada

out

Causascustos do congestionamento cenaacuterio 3

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 48: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 85

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim Natildeo usa realimentaccedilatildeo expliacutecita da rede Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finais Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede Roteadores enviam informaccedilotildees para os sistemas finais

Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ECN ATM) Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 49: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 88

31 Serviccedilos da camada de transporte

32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

33 Transporte natildeo orientado agrave conexatildeo UDP

34 Princiacutepios de transferecircncia confiaacutevel de dados

35 Transporte orientado agrave conexatildeo TCP Estrutura do segmento Transferecircncia confiaacutevel de dados Controle de fluxo Gerenciamento de conexatildeo

36 Princiacutepios de controle de congestionamento

37 Controle de congestionamento do TCP

Camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 50: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 89

Controle fim-a-fim (sem assistecircncia da rede)

Transmissor limita a transmissatildeo LastByteSent-LastByteAcked CongWin Aproximadamente

CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Como o transmissor detecta o congestionamento Evento de perda = tempo de confirmaccedilatildeo ou 3 ACKs duplicadosTransmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda

Trecircs mecanismos AIMD Partida lenta Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

rate = CongWin

RTT Bytessec

TCP controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 51: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 90

Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda

Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de eventos de perda probing

conexatildeo TCP de longa-vida

TCP AIMD

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 52: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 91

Quando a conexatildeo comeccedila CongWin = 1 MSS Exemplo MSS = 500 bytes e RTT = 200 milissegundos Taxa inicial = 20 kbps

Largura de banda disponiacutevel pode ser gtgt MSSRTT Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 53: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 92

Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda Dobra o CongWin a cada RTT Faz-se incrementando o CongWin para cada ACK recebido

Sumaacuterio taxa inicial eacute lenta mas aumenta de modo exponenciamente raacutepido

hospedeiro A

um segmentoRTT

hospedeiro B

tempo

dois segmentos

quatro segmentos

TCP Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 54: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 93

Apoacutes 3 ACKs duplicados CongWin eacute cortado pela metade Janela entatildeo cresce linearmente

Mas apoacutes evento de tempo de confirmaccedilatildeo CongWin eacute ajustado para 1 MSS A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente

Filosofia 3 ACKs indica que a rede eacute capaz de entregar alguns segmentos Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 55: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 94

P Quando o aumento exponencial deve tornar-se linear

R Quando CongWin obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeo Limite variaacutevel No evento de perda o limiar eacute

ajustado para 12 do CongWin logo antes do evento de perda

Refinamento

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 56: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 97

O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughout meacutedio 75 WRTT

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 57: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 98

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (probabildiade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 58: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 99

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 59: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 100

Duas sessotildees competindo pela banda O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente

perda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivoperda reduz janela por um fator de 2prevenccedilatildeo de congestionamento aumento aditivo

Por que o TCP eacute justo

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 60: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 101

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

vaacuterea de pesquisa TCP amigaacutevel

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10 Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2

Equumlidade

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 61: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 102

P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar um pedido

Ignorando o congestionamento o atraso eacute influenciado por Estabelecimento de conexatildeo TCP Atraso de transferecircncia de dados Partida lenta

Notaccedilatildeo hipoacuteteses Suponha um enlace entre o cliente e o servidor com taxa de dados R S MSS (bits) O tamanho do objeto (bits) Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)

Tamanho da janela Primeiro suponha janela de congestionamento fixa W segmentos Entatildeo janela dinacircmica modelagem partida lenta

TCP modelagem de latecircncia

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 62: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 103

Primeiro casoWSR gt RTT + SR o ACK para o primeiro segmento na janela retorna antes do valor de janela dos dados enviados

Janela de congestionamento fixa (1)

atraso = 2xRTT + OR

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 63: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 104

Segundo caso WSR lt RTT + SR espera pelo ACK

apoacutes enviar o valor da janela de dados

Janela de congestionamento fixa (2)

atraso = 2xRTT + OR+ (K-1)[SR + RTT - WSR]

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112
Page 64: CONCEITOS DE TELECOMUNICAÇÕES E REDES DE ...docente.ifsc.edu.br/odilson/RCO60803/slides-kurose-cap3.pdfComo funciona a demultiplexação R e d e s d e C o m p u t a d o r e s I Prof

Red

es d

e C

om

pu

tad

ore

s I

Prof Arliones Hoeller 112

Princiacutepios por traacutes dos serviccedilos da camada de transporte Multiplexaccedilatildeodemultiplexaccedilatildeo Transferecircncia de dados confiaacutevel Controle de fluxo Controle de congestionamento

Instanciaccedilatildeo e implementaccedilatildeo na Internet UDP TCP

A seguir Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte) Vamos para o ldquonuacutecleordquo da rede

Resumo

  • 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 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 84
  • Slide 85
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 92
  • Slide 93
  • Slide 94
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
  • Slide 103
  • Slide 104
  • Slide 112