camadas de transmissÃo de dados - .::dcc · • transferência de dados confiável • controle de...

91
Capítulo 3 Redes de computadores e a Internet Camada de transporte

Upload: doancong

Post on 19-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

Capiacutetulo3

Redes de computadores e a Internet

Camadade

transporte

3

3 - 2

Pilha de protocolos da Internet

Aplicaccedilatildeo

Transporte

Rede

Enlace

Fiacutesica

M

M

M

M

Ht

Ht

Ht

Hr

HrHe

Mensagem

Segmento

Datagrama

Quadro

HTTP SMTP FTP DNS

UDP TCP

3

3 - 3

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

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Aprender sobre os protocolos de transporte na Internetbull UDP transporte natildeo orientado agrave conexatildeobull TCP transporte orientado agrave conexatildeobull Controle de congestionamento do TCP

Camada de transporte

3

3 - 4

Camada de transporte

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3

3 - 5

bull Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

bull Os protocolos de transporte satildeo executados nos sistemas finais

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

bull Lado receptor remonta os segmentos em mensagens e

passa para a camada de aplicaccedilatildeo

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

Protocolos e serviccedilos de transporte

3

3 - 6

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros

bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar

12 crianccedilas enviam cartas para 12 crianccedilas

bull Processos = crianccedilas

bull Mensagens da aplicaccedilatildeo = cartas nos envelopes

bull Hospedeiros = casas

bull Protocolo de transporte = Anna e Bill

bull Protocolo da camada de rede = Serviccedilo Postal

Camada de transporte vs camada de rede

3

3 - 7

bull Confiaacutevel garante ordem de entrega TCP

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entrega UDP

bull Extensatildeo do ldquomelhor esforccedilordquo do IP

Protocolos da camada de transporte da Internet

3

3 - 8

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 9

Demultiplexaccedilatildeo no hospedeiro receptor

entrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissor

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 10

Mecanismo de endereccedilamento

Transporte

Aplicaccedilatildeo

80 53 25 n

TCP UDP

HTTP DNS SMTP x

web

TRANSPORTE VIRTUAL

e-mail

ftp

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 2: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 2

Pilha de protocolos da Internet

Aplicaccedilatildeo

Transporte

Rede

Enlace

Fiacutesica

M

M

M

M

Ht

Ht

Ht

Hr

HrHe

Mensagem

Segmento

Datagrama

Quadro

HTTP SMTP FTP DNS

UDP TCP

3

3 - 3

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

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Aprender sobre os protocolos de transporte na Internetbull UDP transporte natildeo orientado agrave conexatildeobull TCP transporte orientado agrave conexatildeobull Controle de congestionamento do TCP

Camada de transporte

3

3 - 4

Camada de transporte

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3

3 - 5

bull Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

bull Os protocolos de transporte satildeo executados nos sistemas finais

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

bull Lado receptor remonta os segmentos em mensagens e

passa para a camada de aplicaccedilatildeo

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

Protocolos e serviccedilos de transporte

3

3 - 6

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros

bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar

12 crianccedilas enviam cartas para 12 crianccedilas

bull Processos = crianccedilas

bull Mensagens da aplicaccedilatildeo = cartas nos envelopes

bull Hospedeiros = casas

bull Protocolo de transporte = Anna e Bill

bull Protocolo da camada de rede = Serviccedilo Postal

Camada de transporte vs camada de rede

3

3 - 7

bull Confiaacutevel garante ordem de entrega TCP

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entrega UDP

bull Extensatildeo do ldquomelhor esforccedilordquo do IP

Protocolos da camada de transporte da Internet

3

3 - 8

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 9

Demultiplexaccedilatildeo no hospedeiro receptor

entrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissor

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 10

Mecanismo de endereccedilamento

Transporte

Aplicaccedilatildeo

80 53 25 n

TCP UDP

HTTP DNS SMTP x

web

TRANSPORTE VIRTUAL

e-mail

ftp

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 3: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 3

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

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

bull Aprender sobre os protocolos de transporte na Internetbull UDP transporte natildeo orientado agrave conexatildeobull TCP transporte orientado agrave conexatildeobull Controle de congestionamento do TCP

Camada de transporte

3

3 - 4

Camada de transporte

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3

3 - 5

bull Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

bull Os protocolos de transporte satildeo executados nos sistemas finais

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

bull Lado receptor remonta os segmentos em mensagens e

passa para a camada de aplicaccedilatildeo

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

Protocolos e serviccedilos de transporte

3

3 - 6

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros

bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar

12 crianccedilas enviam cartas para 12 crianccedilas

bull Processos = crianccedilas

bull Mensagens da aplicaccedilatildeo = cartas nos envelopes

bull Hospedeiros = casas

bull Protocolo de transporte = Anna e Bill

bull Protocolo da camada de rede = Serviccedilo Postal

Camada de transporte vs camada de rede

3

3 - 7

bull Confiaacutevel garante ordem de entrega TCP

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entrega UDP

bull Extensatildeo do ldquomelhor esforccedilordquo do IP

Protocolos da camada de transporte da Internet

3

3 - 8

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 9

Demultiplexaccedilatildeo no hospedeiro receptor

entrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissor

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 10

Mecanismo de endereccedilamento

Transporte

Aplicaccedilatildeo

80 53 25 n

TCP UDP

HTTP DNS SMTP x

web

TRANSPORTE VIRTUAL

e-mail

ftp

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 4: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 4

Camada de transporte

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

3

3 - 5

bull Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

bull Os protocolos de transporte satildeo executados nos sistemas finais

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

bull Lado receptor remonta os segmentos em mensagens e

passa para a camada de aplicaccedilatildeo

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

Protocolos e serviccedilos de transporte

3

3 - 6

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros

bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar

12 crianccedilas enviam cartas para 12 crianccedilas

bull Processos = crianccedilas

bull Mensagens da aplicaccedilatildeo = cartas nos envelopes

bull Hospedeiros = casas

bull Protocolo de transporte = Anna e Bill

bull Protocolo da camada de rede = Serviccedilo Postal

Camada de transporte vs camada de rede

3

3 - 7

bull Confiaacutevel garante ordem de entrega TCP

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entrega UDP

bull Extensatildeo do ldquomelhor esforccedilordquo do IP

Protocolos da camada de transporte da Internet

3

3 - 8

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 9

Demultiplexaccedilatildeo no hospedeiro receptor

entrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissor

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 10

Mecanismo de endereccedilamento

Transporte

Aplicaccedilatildeo

80 53 25 n

TCP UDP

HTTP DNS SMTP x

web

TRANSPORTE VIRTUAL

e-mail

ftp

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 5: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 5

bull Fornecem comunicaccedilatildeo loacutegica entre processos de aplicaccedilatildeo em diferentes hospedeiros

bull Os protocolos de transporte satildeo executados nos sistemas finais

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

bull Lado receptor remonta os segmentos em mensagens e

passa para a camada de aplicaccedilatildeo

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

Protocolos e serviccedilos de transporte

3

3 - 6

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros

bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar

12 crianccedilas enviam cartas para 12 crianccedilas

bull Processos = crianccedilas

bull Mensagens da aplicaccedilatildeo = cartas nos envelopes

bull Hospedeiros = casas

bull Protocolo de transporte = Anna e Bill

bull Protocolo da camada de rede = Serviccedilo Postal

Camada de transporte vs camada de rede

3

3 - 7

bull Confiaacutevel garante ordem de entrega TCP

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entrega UDP

bull Extensatildeo do ldquomelhor esforccedilordquo do IP

Protocolos da camada de transporte da Internet

3

3 - 8

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 9

Demultiplexaccedilatildeo no hospedeiro receptor

entrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissor

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 10

Mecanismo de endereccedilamento

Transporte

Aplicaccedilatildeo

80 53 25 n

TCP UDP

HTTP DNS SMTP x

web

TRANSPORTE VIRTUAL

e-mail

ftp

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 6: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 6

bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeiros

bull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede

Analogia com uma casa familiar

12 crianccedilas enviam cartas para 12 crianccedilas

bull Processos = crianccedilas

bull Mensagens da aplicaccedilatildeo = cartas nos envelopes

bull Hospedeiros = casas

bull Protocolo de transporte = Anna e Bill

bull Protocolo da camada de rede = Serviccedilo Postal

Camada de transporte vs camada de rede

3

3 - 7

bull Confiaacutevel garante ordem de entrega TCP

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entrega UDP

bull Extensatildeo do ldquomelhor esforccedilordquo do IP

Protocolos da camada de transporte da Internet

3

3 - 8

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 9

Demultiplexaccedilatildeo no hospedeiro receptor

entrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissor

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 10

Mecanismo de endereccedilamento

Transporte

Aplicaccedilatildeo

80 53 25 n

TCP UDP

HTTP DNS SMTP x

web

TRANSPORTE VIRTUAL

e-mail

ftp

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 7: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 7

bull Confiaacutevel garante ordem de entrega TCP

bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo

bull Natildeo confiaacutevel sem ordem de entrega UDP

bull Extensatildeo do ldquomelhor esforccedilordquo do IP

Protocolos da camada de transporte da Internet

3

3 - 8

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 9

Demultiplexaccedilatildeo no hospedeiro receptor

entrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissor

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 10

Mecanismo de endereccedilamento

Transporte

Aplicaccedilatildeo

80 53 25 n

TCP UDP

HTTP DNS SMTP x

web

TRANSPORTE VIRTUAL

e-mail

ftp

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 8: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 8

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 9

Demultiplexaccedilatildeo no hospedeiro receptor

entrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissor

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 10

Mecanismo de endereccedilamento

Transporte

Aplicaccedilatildeo

80 53 25 n

TCP UDP

HTTP DNS SMTP x

web

TRANSPORTE VIRTUAL

e-mail

ftp

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 9: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 9

Demultiplexaccedilatildeo no hospedeiro receptor

entrega os segmentos recebidos ao socket correto

Multiplexaccedilatildeo no hospedeiro emissor

coleta dados de muacuteltiplos sockets envelopa os dados com cabeccedilalho (usado depois para demultiplexaccedilatildeo)

Multiplexaccedilatildeodemultiplexaccedilatildeo

3

3 - 10

Mecanismo de endereccedilamento

Transporte

Aplicaccedilatildeo

80 53 25 n

TCP UDP

HTTP DNS SMTP x

web

TRANSPORTE VIRTUAL

e-mail

ftp

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 10: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 10

Mecanismo de endereccedilamento

Transporte

Aplicaccedilatildeo

80 53 25 n

TCP UDP

HTTP DNS SMTP x

web

TRANSPORTE VIRTUAL

e-mail

ftp

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 11: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 11

Mecanismo de endereccedilamento

Mecanismos de endereccedilamento na camada de transporte

bullNuacutemero de portabullNuacutemero de porta destino identifica o endereccedilo de entregabullNuacutemero de porta origem identifica o endereccedilo de resposta

bullDiscrimina entre os muitos processos que podem rodar simultaneamente

bullIdentificado por nuacutemeros inteiros de 16-bits (0 a 65535)

bullIANA (Internet Assigned Number Authority)bullPortas conhecidas ou permanentes 0 a 1023bullPortas registradas 1024 a 49151bullPortas dinacircmicas 49152 a 65535

bullAlguns portas bem conhecidas ndash RFC 1700bullHTTP porta 80bullSMTP porta 25

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 12: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 12

Mecanismo de endereccedilamentoMecanismos de endereccedilamento na camada de transporte

‑Identificado por nuacutemeros inteiros de 16-bits (0 a 65535)

‑IANA (Internet Assigned Number Authority)

‑Portas conhecidas ou permanentes 0 a 1023As portas com nuacutemeros bem conhecidos satildeo atribuiacutedas e controladas pelo IANA e satildeo as portas puacuteblicas conhecidas

‑Portas registradas 1024 a 49151As portas registradas natildeo satildeo atribuiacutedas ou controladas pelo IANA e podem ser registradas por empresas comerciais junto ao IANA para evitar duplicaccedilatildeo

‑Portas dinacircmicas 49152 a 65535As portas dinacircmicas ou temporaacuterias natildeo satildeo controladas nem registradas e podem ser utilizadas por qualquer processo

0 1023

1024 49151

49152 65535

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 13: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 13

Exemplo de endereccedilamento

Este eacute o pedido

ServidorCliente

Processo

Socket

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

SOCKET portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE 2006)

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 14: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 14

bull Cria sockets com nuacutemeros de porta

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

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

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

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 15: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 15

Exemplo de endereccedilamento

ServidorCliente A

Porta Fonte50001

Porta destino25

Porta Fonte25

Porta destino50001

Cliente B

Porta Fonte50001

Porta destino25

IP FonteX

IP destinoY

Porta Fonte25

Porta destino50001

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 16: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 16

clienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

PD 6428

PF 9157

PD 9157

PF 6428

PD 6428

PF 5775

PD 5775

PF 6428

Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo

Orientados ao mesmo processo destino por meio do mesmo socket

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 17: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 17

bull Socket TCP identificado por 4 valores bull Endereccedilo IP de origembull Endereccedilo porta de origembull Endereccedilo IP de destinobull Endereccedilo porta de destino

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

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

Demux orientada agrave conexatildeo

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 18: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 18

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

P5 P6 P3

PF 9157

PD 80

PF 9157

PD 80

IP-DC

IP-F A

IP-DC

IP-F B

PF 5775

PD 80

IP-DC

IP-F B

Demultiplexaccedilatildeo orientada agrave conexatildeo

O socket TCP eacute identificado pelos quatro elementos

IP FonteA

IP destinoB

Porta FonteX

Porta destinoY

Demultiplexaccedilatildeo da camada de transporte

Processos HTTP por conexatildeo

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 19: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 19

clienteIPB

P1

cliente IP A

P1P2

servidorIP C

SP 9157

DP 80

SP 9157

DP 80

P4 P3

D-IPC

S-IP A

D-IPC

S-IP B

SP 5775

DP 80

D-IPC

S-IP B

Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo

Demultiplexaccedilatildeo da camada de transporte

Processo uacutenico com trecircs thread

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 20: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 20

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 21: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 21

bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquo

bull Serviccedilo ldquobest effortrdquo segmentos UDP podem ser

bull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo

bull Sem conexatildeo

bull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptorbull Cada segmento UDP eacute tratado de forma independente dos outros

Por que existe um UDP

bull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no

receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo

raacutepido quanto desejado

UDP User Datagram Protocol [RFC 768]

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 22: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 22

Mais sobre UDP

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 23: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 23

Aplicaccedilatildeo

Transporte

M

MHt

Mensagem

Segmento

HTTP SMTP FTP DNS

UDP

Cabeccedilalho da camada de transmissatildeo

Mensagem

Segmento UDP

Mais sobre UDP

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 24: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 24

bull Muito usado por aplicaccedilotildees de mutimiacutedia contiacutenua (streaming)

bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa

bull Outros usos do UDP (por quecirc)bull DNSbull SNMP

bull Transferecircncia confiaacutevel sobre UDP acrescentar confiabilidade na camada de aplicaccedilatildeo

bull Recuperaccedilatildeo de erro especiacutefica de cada aplicaccedilatildeo

Mais sobre UDP

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 25: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 25

Estrutura do segmento UDP

Source port Destination port

Length Checksum

Dados da camada de aplicaccedilatildeo(mensagem)

32 bitsbull RFC 768

bull Identificaccedilatildeo das portas

bull Tamanho expressa em bytes o comprimento do segmento UDP incluindo o cabeccedilalho

bull Soma de verificaccedilatildeo ndash RFC 1071

bull Dados

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 26: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 26

Segmento UDP 01

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 27: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 27

Segmento UDP 02

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 28: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 28

Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitido

Transmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmentobull Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptorbull Computa o checksum do segmento recebidobullVerifica se o checksum calculado eacute igual ao valor do campo checksum

bull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso

UDP checksum

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 29: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 29

Soma de verificaccedilatildeo UDP ndash RFC 1071

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

Suponha 3 palavras de 16 bits

A soma das duas primeiras palavras de 16 bits eacute

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 (I)0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV)

+

Adicionando a terceira palavra agrave soma (IV) temos

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1 (V)

+

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 30: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 30

bull Note quebull Ao se adicionar nuacutemeros um vai um do bit mais significativo

deve ser acrescentado ao resultado

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 (IV) 1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 (III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 11 1

0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 (V)

wraparound

Exemplo Soma de verificaccedilatildeo UDP

sum

checksum 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 31: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 31

Exerciacutecio 01Qual a palavra binaacuteria do campo Soma de Verificaccedilatildeo do segmento UDP ilustrado na figura a seguir

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 32: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 32

Exerciacutecio 02

Qual a palavra a ser inserida no campo checksum se o segmento conteacutem as seguintes palavras 4465 7477 6F72 6B73

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 33: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 33

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 34: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 34

bull Importante nas camadas de aplicaccedilatildeo transporte e enlace

bull Top 10 na lista dos toacutepicos mais importants de redes

bull Caracteriacutesticas dos canais natildeo confiaacuteveis determinaratildeo a complexidade dos protocolos confiaacuteveis de transferecircncia de dados

Princiacutepios de transferecircncia confiaacutevel de dados

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 35: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 35

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem

Envia mensagem

Remetente Destinataacuterio

Recebe mensagem

Envia ack

Recebe ackEnvia mensagem

Recebe mensagem

Envia nak

Recebe nak

Recebe mensagem

Envia ack

Recebe ack

bull Como obter confiabilidadebull Variedade de teacutecnicasbull A maioria dos protocolos

utiliza ldquoconfirmaccedilatildeo positiva com retransmissatildeo (Comer 2007)

bull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor que o pacote foi recebido corretamente

bull Reconhecimentos negativos (NAKs) receptor avisa explici-tamente ao transmissor que o pacote tem erros

bull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAKbull Pare e espere transmissor envia um pacote e entatildeo espera pela resposta do receptor

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 36: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 36

Princiacutepios de transferecircncia confiaacutevel de dados

bull Protocolos ARQ (Automatic Repeat reQuest ndash solicitaccedilatildeo automaacutetica de repeticcedilatildeo)

bull Pilaresbull Envio de dados pelo gerador

bull Recebimento pelo receptorbull Recebimento sem erros (receptor envia ACK)bull Recebimento com erros (receptor envia NAK)

bull Retransmissatildeo

bull Temporizaccedilatildeo

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 37: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 37

Temporizador

Envia mensagem

Remetente Destinataacuterio

Mensagem chega

ack deveria ser enviado

Aguardando ack

timeout

Retransmite mensagem Recebe mensagem

Envia ack

Recebe ack

Zera temporizador

Envia mensagem

Tem

pori

zad

or

Tem

pori

zad

or

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 38: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 38

Mensagem duplicada

Envia mensagem

Remetente Destinataacuterio

Mensagem recebida

Envio de ack

Ack natildeo chega

Nak corrompido

Retransmite mensagem Novos dados

Retransmissatildeo

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 39: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 39

O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata

Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada

pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdidobull Receptor descarta (natildeo passa para a aplicaccedilatildeo) pacotes

duplicados

Tratamento de duplicatas

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 40: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 40

Princiacutepios de transferecircncia confiaacutevel de dados

Retransmite mensagem 2

Envia mensagem 1

Remetente Destinataacuterio

Recebe mensagem 1Enviar ack1

Recebe ack1Envia mensagem 2

Recebe mensagem 2Envia nak2

Receber nak2

Receber mensagem 2Enviar ack2

Recebe ack2

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 41: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 41

T transmissatildeo = 8 kbit1 Gbits

= 8micros

bull U efetiva ocupaccedilatildeo efetiva

bull Delay de propagaccedilatildeo de 15msbull O protocolo de rede limita o uso dos recursos fiacutesicos

L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)

=

bull Baixo desempenhobull Exemplo enlace de 1 Gbits 15 ms de atraso de propagaccedilatildeo pacotes

de 1 KB

Desempenho

Uefetiva =30008

= 027Uso efetivoTempo total

=LRRTT + LR

8micros=

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 42: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 42

Desempenho

Um protocolo de confirmaccedilatildeo positiva desperdiccedila uma quantidade substancial de largura de banda de rede pois precisa adiar o envio de um novo pacote ateacute que receba uma confirmaccedilatildeo para o pacote anterior (Comer 2006)

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 43: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 43

Protocolo com paralelismo

Motivaccedilatildeo

bull Baixo throughput de redebull Completamente inativa enquanto aguarda confirmaccedilatildeo (ACK)

Transmissotildees muacuteltiplas bull Protocolo com paralelismo

Pacote de dados

Pacote de dados

Pacotes ACK

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 44: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 44

Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todos esperando para serem reconhecidos bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor

bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeo seletiva

(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo

Protocolo com paralelismo (pipelining)

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

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

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

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

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

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

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

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

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

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

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

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

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

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

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

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

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

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 45: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 45

Janela Deslizante

Envia mensagem 1

Remetente Destinataacuterio

Envia mensagem 2

Envia mensagem 3

Recebe mensagem 1 envia ack1Recebe mensagem 2 envia ack2Recebe mensagem 3 envia ack3

Janela inicial

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 Janela de

tamanho = 3

R D

Janela desliza

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

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

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

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

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

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

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

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

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

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

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

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

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

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

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 46: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 46

Usender=

3 L R

RTT + L R

Paralelismo aumento da utilizaccedilatildeo

Aumento da utilizaccedilatildeopor um fator de 3

Como um protocolo de janela deslizante bem ajustado manteacutem a rede completamente saturada com pacotes ele obteacutem um throuyghput substancialmente maior que um protocolo de confirmaccedilatildeo positiva simples (Comer 2006)

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 47: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 47

Processo de recuperaccedilatildeo de erros com paralelismo

bullGo-Back-N (GBN)

bullRepeticcedilatildeo seletiva (SR)

Recuperaccedilatildeo de Erro com Paralelismo

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 48: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 48

Transmissorbull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacotebull descarte dos pacotes recebidos fora de ordem

bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo este limite) ldquoACK cumulativordquo

bull Pode receber ACKs duplicados (veja receptor)bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com nuacutemero de sequumlecircncia maior que estejam dentro da janela

Go-Back-N

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 49: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 49

GBN em accedilatildeo

Envia pkt0

Envia pkt1

Envia pkt2

Envia pkt3

(espera)

Recebe ack0

Envia pkt4

Recebe ack1

Envia pkt5

pkt2 temporizaccedilatildeo

Envia pkt2Envia pkt3Envia pkt4Envia pkt5

Remetente Destinataacuterio

perda

Recebe pkt0Envia ack0Recebe pkt1Envia ack1

Recebe pkt3 descartaEnvia ack1

Recebe pkt4 descartaEnvia ack1Recebe pkt4 descartaEnvia ack1

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 9 0

Transmissor

Transmissor

Transmissor

Receptor

Receptor

Receptor

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 50: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 50

bull Receptor reconhece individualmente todos os pacotes recebidos corretamente

bull Armazena pacotes quando necessaacuterio para eventual entrega em ordem para a camada superior

bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foi recebido

bull Transmissor temporiza cada pacote natildeo reconhecido

bull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivos bull Novamente limita a quantidade de pacotes enviados mas natildeo

reconhecidos

Retransmissatildeo seletiva

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 51: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 51

Retransmissatildeo seletiva janelas do transmissor e do receptor

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 52: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 52

TRANSMISSORDados da camada superior

ndash Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote senatildeo eacute armazenado ou devolvido para transmissatildeo posterior

Tempo de confirmaccedilatildeo(n)ndash Reenvia pacote n restart timer

ACK (n)- Marca pacote n como recebido- Se n eacute o menor pacote natildeo reconhecido avanccedila a base da janela para o

proacuteximo nuacutemero de sequumlecircncia natildeo reconhecido

RECEPTORPacote n

- Envia ACK(n)- Fora de ordem armazena- Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem)

avanccedila janela para o proacuteximo pacote ainda natildeo recebido

Retransmissatildeo seletiva

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 53: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 53

Retransmissatildeo seletiva em accedilatildeo

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 54: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 54

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 55: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 55

bull Ponto-a-pontobull Um transmissor um receptor

bull Pipelined transmissatildeo de vaacuterios pacotes sem confirmaccedilatildeo

bull Controle de congestionamento e de fluxo definem tamanho da janela

bull Buffers de transmissatildeo e de recepccedilatildeo

bull Dados full-duplexbull Transmissatildeo bidirecional na

mesma conexatildeobull MSS maximum segment size

bull Orientado agrave conexatildeo bull three way handshake

(apresentaccedilatildeo de trecircs vias)

bull Controle de fluxobull Transmissor natildeo esgota a

capacidade do receptor

TCP overview RFCs 793 1122 1323 2018 2581

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 56: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 56

URG dados urgentes (pouco usados)

ACK campo de ACKeacute vaacutelido

PSH indica que os dados devem ser enviados

imediatamente para a camada superior

(pouco usado)

(1) RST SYN FINestabelec de conexatildeo

(comandos de criaccedilatildeo e teacutermino)

(16) nuacutemero de bytes receptor estaacutepronto para aceitar (controle de fluxo)

(32) contagem porbytes de dados(natildeo segmentos)

(16) Checksum(como no UDP)

Estrutura do segmento TCP

RST retransmissatildeoSYN sincronismoFIN terminar conexatildeo

Negociaccedilatildeo de MSSConsulte RFC 854 e RFC 1323

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 57: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 57

Estrutura do segmento TCP

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 58: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 58

Nuacutemero de sequumlecircncia e reconhecimento

0 1 1000 1999 499999

Dados para o primeiro semento

Dados para o segundo semento

Envia pkt

Remetente Destinataacuterio

Recebe pktEnvia pkt

Seq = 0 ACK = 79 Dados

Seq = 79 ACK 1000 Dados

Seq = 1000 ACK 159 Dados

MSS = 1000 bytes

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 59: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 59

Nuacutemeros de sequumlecircnciabull Nuacutemero do primeiro byte

nos segmentos de dados

ACKbull Nuacutemero do proacuteximo byte

esperado do outro lado

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 60: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 60

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 61: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 61

Nuacutemero de sequumlecircncia e ACK do TCP

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 62: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 62

P como escolher o valor da temporizaccedilatildeo do TCPbull Maior que o RTT quanto maior

bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias

bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta

P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute

a respectiva confirmaccedilatildeo

bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para a estimativa do RTT

bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido

TCP Round Trip Time e temporizaccedilatildeo

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 63: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 63

EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT

bull Meacutedia moacutevel com peso exponencial bull Influecircncia de uma dada amostra decresce de forma

exponencial bull Valor recomendado α = 0125 (RFC 2988)

TCP Round Trip Time e temporizaccedilatildeo

EstimatedRTT = valor ponderado dos valores de SampleRTT

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 64: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 64

Exemplos de estimativa do RTT

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 65: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 65

Definindo a temporizaccedilatildeo

bull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de

seguranccedila

bull Primeiro estimar o quanto o SampleRTT se desvia do EstimatedRTT

DevRTT = (1-β)DevRTT + β|SampleRTT-EstimatedRTT|

(typically β = 025)

Entatildeo ajustar o intervalo de temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + 4DevRTT

TCP Round Trip Time e temporizaccedilatildeo

TimeoutInterval = EstimatedRTT + β

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 66: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 66

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo-orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 67: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 67

bull TCP cria serviccedilos de transferecircncia confiaacutevel em cima do serviccedilo natildeo-confiaacutevel do IP

bull Pipelined segments (segmentos numerados)

bull ACKs cumulativos

bullTCP usa tempo de retransmissatildeo

bull Retransmissotildees disparadas

bull Duplicaccedilatildeo do tempo de expiraccedilatildeobull ACKs duplicados retransmissatildeo raacutepida

TCP transferecircncia de dados confiaacutevel

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 68: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 68

Cenaacuterio com perdado ACK

Temporizaccedilatildeo prematuraACKs cumulativos

TCP cenaacuterios de retransmissatildeo

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 69: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 69

Cenaacuterio de ACK cumulativo

TCP cenaacuterios de retransmissatildeo

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 70: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 70

bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido

bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos bull Se o segmento eacute perdido haveraacute muitos ACKs duplicados

bull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o segmento apoacutes o dado confirmado foi perdido

bull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador expirar

Retransmissatildeo raacutepida

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 71: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 71

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 72: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 72

bull Processos de compatilizaccedilatildeo de velocidades de envio e recepccedilatildeo

Controle de fluxo

TCP controle de fluxo

Espaccedilo disponiacutevel

DadosTCP

no buffer

Dados vindos da camada de rede

Processo deaplicaccedilatildeo

Buffer de recepccedilatildeo

Janela de recepccedilatildeo

bull Transmissor natildeo deve esgotar os buffers de recepccedilatildeo enviando dados raacutepido demais

bull A janela de recepccedilatildeo eacute utilizada para controlar a velocidade de transmissatildeo

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 73: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 73

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 74: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 74

TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos de dados

bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo

bull Cliente iniciador da conexatildeo

bull Servidor chamado pelo cliente

Three way handshake

Passo 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial

Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACK bull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor

Passo 3 o sistema final cliente reconhece o SYNACK

Gerenciamento de conexatildeo TCP

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 75: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 75

Fechando uma conexatildeo

Passo 1 o cliente envia o segmento TCP FIN ao servidor

Passo 2 servidor recebe FIN responde com ACK Fecha a conexatildeo envia FIN

Gerenciamento de conexatildeo TCP

Passo 3 cliente recebe FIN responde com ACK

bull Entra ldquoespera temporizadardquo - vai responder com ACK a FINs recebidos

Passo 4 servidor recebe ACK Conexatildeo fechada

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 76: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 76

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 77: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 77

Congestionamento

bull Informalmente ldquomuitas fontes enviando dados acima da capacidade da rede de trataacute-losrdquo

bull Diferente de controle de fluxo

bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)

bull Um dos 10 problemas mais importantes na Internet

Princiacutepios de controle de congestionamento

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 78: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 78

bull Dois transmissores dois receptores

bull Um roteador buffers infinitos

bull Natildeo haacute retransmissatildeobull Grandes atrasos

quando congestionadobull Maacutexima vazatildeo

alcanccedilaacutevel

Causascustos do congestionamento cenaacuterio 1

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 79: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 79

bull Um roteador buffers finitos bull Transmissor reenvia pacotes perdidos

Causascustos do congestionamento cenaacuterio 2

finitos

λin= dados originais mais dados retransmitidos

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 80: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 80

bull Sempre vale (traacutefego bom)bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdasbull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior

(que o caso perfeito ) para o mesmo

Causascustos do congestionamento cenaacuterio 2

λin

λout

=

λinλ

out

ldquocustosrdquo do congestionamento bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquobull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias

do mesmo pacote

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 81: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 81

Existem duas abordagens gerais para o problema de controle de congestionamento

Controle de congestionamento fim-a-fim

bull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasos observados nos sistemas finaisbull Abordagem usada pelo TCP

Controle de congestionamento assistido pela rede

bull Roteadores enviam informaccedilotildees para os sistemas finais

bull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP ATM)

bull Taxa expliacutecita do transmissor poderia ser enviada

Abordagens do produto de controle de congestionamento

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 82: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 82

bull 31 Serviccedilos da camada de transporte

bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo

bull 33 Transporte natildeo orientado agrave conexatildeo UDP

bull 34 Princiacutepios de transferecircncia confiaacutevel de dados

bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo

bull 36 Princiacutepios de controle de congestionamento

bull 37 Controle de congestionamento do TCP

Camada de transporte

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 83: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 83

bull Controle fim-a-fim (sem assistecircncia da rede)

bull Transmissor limita a transmissatildeo

bull Tamanho da janela de congestionamento eacute dinacircmico funccedilatildeo de congestionamento das redes detectadas

Trecircs mecanismosbull Algoritmo AIMD (Additive Increase Multiplicative Decrease)bull Partida lenta (Slow start)bull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo

TCP controle de congestionamento

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 84: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 84

Reduccedilatildeo multiplicativa (ou exponencial) diminui o tamanho da Janela de Congestionamento pela metade apoacutes o evento de perda

Aumento aditivo (ou aditivo) aumenta do tamanho da Janela de Congestionamento 1 MSS (Maximun Size Segment) a cada RTT na ausecircncia de eventos de perda

TCP AIMD

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 85: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 85

bull Quando a conexatildeo comeccedila tamanho da Janela de Congestionamento = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps

bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel

bull Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modo exponencial ateacute a ocorrecircncia do primeiro evento de perda

TCP Partida lenta

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 86: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 86

P Quando o aumento exponencial deve tornar-se linear

R Quando TJC obtiver 12 do seu valor antes do tempo de confirmaccedilatildeo

Implementaccedilatildeobull Limite variaacutevelbull No evento de perda o

limiar eacute ajustado para 12 do TJC logo antes do evento de perda

Refinamento

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 87: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 87

bull Qual que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTT

bull Quando a janela eacute W o throughput eacute WRTT

bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

bull Throughout meacutedio = 075 WRTT

TCP throughput

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 88: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 88

bull Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

bull Throughput em termos da taxa de perda

bull Taxa de perda L = 210-10 (taxa muito baixa = 1 a cada 5 bilhotildees)

bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSSsdot221

Futuro do TCP

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 89: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 89

Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do gargalo com largura de banda R cada uma deve ter taxa meacutedia de RK

Equumlidade do TCP

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 90: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 90

Equumlidade e UDP

bull Aplicaccedilotildees multimiacutedia normalmente natildeo usam TCP

bull Natildeo querem a taxa estrangulada pelo controle de congestionamento

bull Em vez disso usam UDP

Equumlidade

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
Page 91: CAMADAS DE TRANSMISSÃO DE DADOS - .::DCC · • Transferência de dados confiável • Controle de fluxo ... Mecanismos de endereçamento na camada de transporte ‑Identificado

3

3 - 91

bull Princiacutepios por traacutes dos serviccedilos da camada de transporte

bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento

A seguir

bull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede

Resumo

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Slide 39
  • Slide 40
  • Slide 41
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Slide 53
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • Slide 66
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 78
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91