Você está na página 1de 23

TCP - controle de fluxo

Elimina a possibilidade de o remetente saturar o destinatrio Apresentao supe que segmentos fora de ordem so descartados Baseado em janelas
Remetente mantm uma varivel chamada janela de recepo (RcvWindow)

TCP - controle de fluxo


Janela e buffer de recepo (fonte: Kurose)

TCP - controle de fluxo


Destinatrio mantm as variveis
LastByteRead LastByteRcvd

LastByteRcvd LastByteRead RcvBuffer


Para no saturar o buffer

RcvWindow = RcvBuffer [LastByteRcvd LastByteRead]

TCP - controle de fluxo


Remetente mantm as variveis
LastByteSent LastByteAcked

Remetente precisa ter uma ideia do buffer do destinatrio Destinatrio envia quanto h de espao no buffer colocando RcvWindow no campo janela de recepo de cada segmento LastByteSent LastByteAcked RcvWindow
Para no saturar o buffer do destinatrio

TCP - controle de fluxo


Problema quando RcvWindow = destinatrio no tem nada a enviar
Soluo
Remetente deve enviar segmento de um octeto de dados quando a janela for zero

TCP - estabelecimento de conexo


Inicializa variveis
Nmeros de sequncia Buffers, RcvWindow

3-way handshake usado para eliminar problema de duplicatas antigas (atrasadas)


Ex.: pedidos de conexo, ACKs

Estabelecimento de conexo
3-way handshake genrico (fonte: Tanenbaum)

(a) Normal operation, (b) Old CONNECTION REQUEST appearing out of nowhere.

Estabelecimento de conexo
3-way handshake genrico (fonte: Tanenbaum)

(c) Duplicate CONNECTION REQUEST and duplicate ACK.

TCP - estabelecimento de conexo


Trs fases
SYN
Bit SYN = 1 Nmero de sequncia inicial aleatrio (client_isn)

SYNACK
Recebe SYN Aloca buffers e variveis Bit SYN = 1 e bit ACK = 1 (espera client_isn + 1) Nmero de sequncia inicial aleatrio (server_isn)

ltima fase
Recebe SYNACK Aloca buffers e variveis Bit SYN = 0 ACK = server_isn + 1

TCP - fechamento de conexo


Cliente ou servidor pode encerrar a conexo Libera os buffers e variveis

TCP - fechamento de conexo


FIN
Bit FIN = 1

ACK
Responde com ACK a FIN recebido Bit ACK = 1

ACK e FIN do respondedor enviados juntos Espera temporizada


Tempo para poder reenviar o ACK

podem

ser

ACKs do iniciador podem ser perdidos Respondedor espera pelo ACK durante um certo tempo e se o ACK no chega reenvia o FIN

Exemplo de fechamento de conexo (fonte: Kurose)

Sequncia tpica de estados do TCP cliente

Sequncia tpica de estados do TCP servidor

Controle de congestionamento
Sintomas
Perdas de pacotes Atrasos grandes

Apresentao do problema atravs de cenrios cada vez mais complexos

Cenrio 1: duas conexes, roteador com buffer infinito (fonte: Kurose)

Enlace de sada do roteador de capacidade R No considera retransmisso

Cenrio 1: duas conexes, roteador com buffer infinito (fonte: Kurose)

Vazo mxima por conexo de R/2 Atraso cresce bastante quando congestionado

Cenrio 2: duas conexes, roteador com buffer finito (fonte: Kurose)

Considera retransmisso

Cenrio 2: duas conexes, roteador com buffer finito (fonte: Kurose)


R/2 R/2 R/2

R/3

out

out

out
R/2

R/4

in

R/2

in

in

R/2

a.

b.

c.

(a) Remetente envia um pacote somente quando o buffer est livre (irreal), ou seja, sem perda (b) Remetente envia quando sabe com certeza que o pacote foi perdido (ainda irreal)

Cenrio 2: duas conexes, roteador com buffer finito (fonte: Kurose)


R/2 R/2 R/2

R/3

out

out

out
R/2

R/4

in

R/2

in

in

R/2

a.

b.

c.

(c) Temporizao pode esgotar prematuramente Supe cada pacote enviado em mdia duas vezes pelo roteador Mais retransmisses para obter uma determinada vazo Retransmisses desnecessrias

Cenrio 3: quatro conexes, roteador com buffer finito (fonte: Kurose)

Cenrio 3: quatro conexes, roteador com buffer finito (fonte: Kurose)

Ver Kurose na pag. 199


Anlise da conexo A-C x B-D no roteador R2 Taxa de chegada de A-C em R2 no mximo R Taxa de chegada de B-D em R2 pode ser muito maior que R Taxa de sada de A-C em R2 pode chegar a 0

Controle de congestionamento
Classificao
Fim-a-fim
Congestionamento inferido a partir das perdas e dos atrasos observados nos sistemas finais Ex.: TCP

Assistido pela rede


Roteadores fornecem realimentao respeito do congestionamento na rede Ex.: ATM (ver Kurose) especfica a