3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

73
3: Camada de Transporte 3c-1 Capítulo 3: Questões de Revisão

Transcript of 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

Page 1: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-1

Capítulo 3: Questões de Revisão

Page 2: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-2

Seções 3.1-3.3

1) Considere uma conexão TCP entre um host A um host B. Suponha que os segmentos TCP que vão do host A ao host B tenham número de porta da origem x e número de porta do destino y. Quais são os números das portas de origem e de destino para os segmentos que vão do host B para o host A?

Page 3: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-3

Seções 3.1-3.3

2) Explique por que o desenvolvedor de uma aplicação escolheria rodar a sua aplicação sobre UDP ao invés de sobre o TCP.

3) É possível que uma aplicação obtenha uma transferência confiável de dados mesmo rodando sobre o UDP? Em caso afirmativo, como?

Page 4: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-4

Seção 3.5

4) Verdadeiro ou Falso: a) O host A está enviando um arquivo grande para

o host B através de uma conexão TCP. Assuma que o host B não tem nenhum dado para enviar ao host A. O host B não enviará reconhecimentos para o host A porque o host B não pode enviar reconhecimentos de carona nos dados.

b) O tamanho da janela de recepção TCP (RcvWindow) nunca é alterado durante a existência da conexão.

Page 5: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-5

Seção 3.5

4) Verdadeiro ou Falso: c) Suponha que o host A está enviando um arquivo

grande para o host B através de uma conexão TCP. O número de bytes que A pode enviar sem ter recebido o reconhecimento do primeiro deles não pode ultrapassar o tamanho do buffer do receptor.

d) Suponha que o host A está enviando um arquivo grande para o host B através de uma conexão TCP. Se o número de seqüência para um segmento desta conexão for m, então o número de seqüência do segmento seguinte será, necessariamente, m+1.

Page 6: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-6

Seção 3.5

4) Verdadeiro ou Falso: e) O segmento TCP tem um campo no seu

cabeçalho para a janela de recepção (RcvWindow).

f) Suponha que a última amostra do tempo de ida e volta (SampleRTT) numa conexão TCP seja igual a 1 segundo. Então o valor do temporizador (Timeout) para a conexão será necessariamente ajustado para um valor >= 1 seg.

Page 7: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-7

Seção 3.5

4) Verdadeiro ou Falso: g) Suponha que o host A envie para o host B um

segmento com número de seqüência 38 e 4 bytes de dados. Então, neste mesmo segmento, o número de reconhecimento é necessariamente 42.

Page 8: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-8

Seção 3.5

5) Suponha que A envie dois segmentos TCP para B. O primeiro segmento possui número de seqüência 90 e o segundo possui número de seqüência 110. a) Qual a quantidade de dados presente no

primeiro segmento? b) Suponha que o primeiro segmento se perca,

mas que o segundo segmento chegue até B. No reconhecimento que B enviará para A, qual será o número de reconhecimento?

Page 9: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-9

Seção 3.5

6) Considere o exemplo do Telnet discutido na seção 3.5. Após alguns segundos que o usuário digitou a letra ‘C’, ele digita a letra ‘R’. Após digitar a letra ‘R’, quantos segmentos serão enviados e o que será colocado nos campos de número de seqüência e de reconhecimento dos segmentos?

Page 10: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-10

Seção 3.7

7) Suponha que duas conexões TCP estejam passando pelo mesmo enlace gargalo com taxa de R bps. Ambas as conexões possuem um grande arquivo para ser enviado (na mesma direção através do enlace gargalo). As transmissões dos dois arquivos têm início simultaneamente. Qual é a taxa de transmissão que o TCP gostaria de dar a cada uma das conexões?

Page 11: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-11

Seção 3.7

8) Verdadeiro ou falso: Considere o controle de congestionamento do TCP. Quando estoura o temporizador no transmissor, o limiar passa a ter metade do seu valor anterior.

Page 12: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-12

Problemas

Page 13: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-13

Problemas

1) Suponha que o cliente A inicie uma sessão Telnet com o servidor S. Praticamente ao mesmo tempo o cliente B também inicia uma sessão com o servidor S. Forneça possíveis números de porta de origem e destino para:a) os segmentos enviados de A para S.

b) os segmentos enviados de B para S.

c) os segmentos enviados de S para A.

d) os segmentos enviados de S para B.

e) Se A e B forem hosts diferentes, é possível que o número da porta de origem nos segmentos de A para S seja o mesmo daqueles de B para S?

f) E se eles forem o mesmo host?

Page 14: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-14

Problema 2

Tanto o UDP como o TCP utilizam o complemento de 1 em seus checksums. Suponha que você tenha as três seguintes palavras de 8 bits: 01010101, 01110000, 11001100. Qual é o complemento de 1 da soma destas palavras? Mostre os detalhes. Por que o UDP faz o complemento de 1 da soma, ou seja, por que não utilizar simplesmente a soma? Com o esquema do complemento de 1, como o receptor detecta erros? É possível que o erro em 1 bit passe desapercebido? E um erro envolvendo 2 bits?

Page 15: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-15

Problema 3

compute chksummake_pkt(sndpkt, NAK, chksum)udt_send(sndpkt) compute chksum

make_pkt(sndpkt, NAK, chksum)udt_send(sndpkt)

Considere a nossa motivação para corrigir o protocolo rdt2.1.

Page 16: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-16

Problema 3

Mostre que este receptor, quando operando com o transmissor mostrado na Figura 3.11, pode levar o transmissor e o receptor a entrar num estado de deadlock, onde cada um fica esperando por um evento que nunca ocorrerá.

Page 17: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-17

Figura 3.11

Page 18: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-18

Problema 4

No protocolo rdt3.0, os pacotes de reconhecimento (ACK) que vão do receptor para o transmissor não possuem números de seqüência (embora possuam um campo de ACK que contém o número de seqüência do pacote que eles estão reconhecendo). Por que os nossos pacotes de ACK não necessitam de números de seqüência?

Page 19: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-19

rdt3.0: remetente

Page 20: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-20

Problema 5

Desenhe a máquina de estados finitos (FSM – Finite State Machine) para o lado do receptor do protocolo rdt 3.0.

Page 21: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-21

rdt3.0 em ação

Page 22: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-22

rdt3.0 em ação

Page 23: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-23

Receptor do rdt2.2

Page 24: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-24

Problema 6

Apresente uma seqüência de operações do protocolo rdt3.0 quando pacotes de dados e pacotes de reconhecimento são alterados. A sua seqüência deve ser semelhante à utilizada na Figura 3.16.

Page 25: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-25

Figura 3.16

Page 26: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-26

Problema 7

Considere um canal que pode perder pacotes mas que tem um retardo máximo conhecido. Modifique o protocolo rdt2.1 para incluir o estouro de temporização no transmissor e retransmissão. Argumente informalmente porque o seu protocolo pode se comunicar corretamente através deste canal.

Page 27: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-27

rdt2.1

Page 28: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-28

Problema 8 O lado transmissor do rdt3.0 simplesmente ignora (isto

é, não toma nenhuma atitude) todos os pacotes recebidos que estejam errados ou que tenham o valor errado no campo de número de seqüência de reconhecimento de um pacote de reconhecimento. Suponha que nestas circunstâncias o rdt3.0 tenha que simplesmente retransmitir o pacote de dados atual. O protocolo ainda funcionaria? (Dica: Considere o que aconteceria no caso em que há apenas erros de bits; não há perdas de pacotes, mas podem ocorrer estouros prematuros dos temporizadores. Considere quantas vezes o n-ésimo pacote é enviado, no limite em que n se aproxima de infinito).

Page 29: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-29

rdt3.0: remetente

Page 30: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-30

Problema 9

Considere o caso de transmissão costa a costa apresentado na Figura 3.17. De que tamanho a janela deveria ser para que a utilização do canal fosse maior do que 90%?

Page 31: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-31

Desempenho de rdt3.0

rdt3.0 funciona, porém seu desempenho é muito ruim exemplo: enlace de 1 Gbps, retardo fim a fim de 15 ms, pacote de

1KB:

Ttransmitir=8kb/pacote10**9 b/seg

= 8 microseg

Utilização = U = =8 microseg

30.016 msegfração do tempo

remetente ocupado = 0,00015

pac. de 1KB a cada 30 mseg -> vazão de 33kB/seg num enlace de 1 Gbps protocolo limita uso dos recursos físicos!

Page 32: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-32

Problema 10

Projete um protocolo de transferência de dados confiável, “com paralelismo” que utiliza apenas reconhecimentos negativos. O quão rapidamente responderá o seu protocolo a perdas de pacotes quando a taxa de chegada de dados ao transmissor for baixa? E se fosse alta?

Page 33: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-33

Problema 11

No protocolo de retransmissão seletiva genérico que estudamos na Seção 3.4.4, o transmissor transmite uma mensagem assim que ela estiver disponível (se estiver dentro da janela) sem esperar por um reconhecimento.

Suponha agora que queiramos um protocolo SR que envia duas mensagens por vez. Isto é, o transmissor enviará um par de mensagens e enviará o próximo par de mensagens apenas quando souber que ambas as mensagens do primeiro par tiverem sido recebidas corretamente.

Page 34: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-34

Problema 11 (cont.)

Suponha que o canal possa perder mensagens mas não corromperá nem reordenará as mensagens.

Projete um protocolo de controle de erro para a transferência confiável unidirecional das mensagens.

Apresente uma descrição através de FSMs tanto para o transmissor como para o receptor.

Descreva o formato dos pacotes enviados entre o transmissor e o receptor, e vice-versa. Se você utilizar qualquer chamada de procedimentos além daquelas da Seção 3.4 (ex., udt_send(), start_timer(), rdt_rcv(), etc.), apresente claramente as suas ações.

Page 35: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-35

Problema 11 (cont.)

Apresente um exemplo (através de um diagrama de tempo do transmissor e do receptor) mostrando como o seu protocolo recupera a perda de um pacote.

Page 36: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-36

Problema 12

Considere um cenário no qual um host, A, quer enviar simultaneamente mensagens para os hosts B e C. A está conectado a B e C através de um canal de difusão – um pacote enviado por A é transportado pelo canal tanto para B como para C.

Suponha que o canal de difusão que conecta A, B e C pode perder ou corromper mensagens de forma independente (deste modo, por exemplo, uma mensagem enviada por A pode ser corretamente recebida por B, mas não por C).

Page 37: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-37

Problema 12 (cont.)

Projete um protocolo de controle de erro do tipo pare-e-espere (stop and wait) para transferir confiavelmente um pacote de A para B e C, de modo que A não pegará novos dados da camada superior até que saiba que tanto B como C receberam corretamente o pacote atual. Apresente descrições FSM para A e C.

(Dica: A FSM para B deve ser essencialmente a mesma que para C).

Também apresente uma descrição do(s) formato(s) do(s) pacote(s) utilizado(s).

Page 38: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-38

Problema 13

Considere o protocolo Volte-a-N com uma janela de transmissão de tamanho 3 e uma faixa de números de seqüência de 1.024. Suponha que no instante t, o próximo pacote na ordem que o receptor esteja esperando tenha número de seqüência k. Assuma que o meio não reordena as mensagens. Responda às seguintes perguntas: a) Quais são os possíveis conjuntos de números de

seqüência dentro da janela do transmissor no instante t? Justifique a sua resposta.

b) Quais são todos os possíveis valores no campo de ACK da mensagem que esteja sendo enviada para o transmissor no instante t? Justifique a sua resposta.

Page 39: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-39

Problema 14

Suponha que tenhamos duas entidades de rede, A e B. B possui um estoque de mensagens de dados que serão transmitidas para A de acordo com as seguintes convenções. Quando A recebe um pedido da camada superior de

recuperar a próxima mensagem de dados (D) recebida de B, A deve enviar uma mensagem de pedido (R – request) para B no canal A-B.

Apenas quando B recebe uma mensagem R é que pode enviar uma mensagem de dados (D) de volta a A no canal B-A.

A deve entregar exatamente uma cópia de cada mensagem D para a camada superior.

Page 40: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-40

Problema 14

Convenções (cont.): As mensagens R podem ser perdidas (mas não corrompidas)

no canal A-B; as mensagens D uma vez enviadas são sempre entregues corretamente.

Os atrasos nos dois canais são variáveis e desconhecidos.

Projete (apresente a FSM de) um protocolo que incorpore os mecanismos apropriados para compensar a vulnerabilidade a perdas do canal A-B e implemente a passagem de mensagem para a camada superior na entidade A, de acordo com o discutido acima.

Use apenas os mecanismos que sejam absolutamente necessários.

Page 41: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-41

Problema 15

Considere os protocolos Volte a N e repetição seletiva. Suponha que o espaço dos números de seqüência tenha tamanho k. Qual seria o maior tamanho da janela do transmissor que evitaria a ocorrência de problemas como os apresentados na Figura 3.26 para cada um destes protocolos?

Page 42: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-42

Figura 3.26: dilema da SR

Exemplo: nos. de seq : 0, 1, 2, 3 tam. de janela =3

receptor não vê diferença entre os dois cenários!

incorretamente passa dados duplicados como novos em (a)

Q: qual a relação entre tamanho de no. de seq e tamanho de janela?

Page 43: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-43

Problema 16

Responda se as afirmações abaixo são verdadeiras ou falsas e justifique brevemente as suas respostas: a) Com o uso do protocolo de repetição

seletiva é possível que o transmissor receba um ACK para um pacote que esteja fora da sua janela atual.

b) Com o uso do protocolo Volte a N é possível que o transmissor receba um ACK para um pacote que esteja fora da sua janela atual.

Page 44: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-44

Problema 16 (cont.)

Responda se as afirmações abaixo são verdadeiras ou falsas e justifique brevemente as suas respostas: c) O protocolo do bit alternante é o mesmo

que o protocolo de repetição seletiva com janelas de transmissão e de recepção de tamanho 1.

d) O protocolo do bit alternante é o mesmo que o protocolo Volte a N com janelas de transmissão e de recepção de tamanho 1.

Page 45: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-45

Problema 17

Considere a transmissão de um arquivo enorme de L bytes do host A para o host B. Assuma um MSS de 1460 bytes.

a) Qual é o valor máximo de L de modo que os números de seqüência do TCP não se esgotem? Lembre que o campo de número de seqüência do TCP possui quatro bytes.

Page 46: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-46

Problema 17 (cont.)

b) Para o L que você tiver obtido no item (a), obtenha qual é o tempo necessário para transmitir o arquivo. Assuma que um total de 66 bytes de cabeçalho de transporte, rede e enlace de dados sejam adicionados a cada segmento antes que o pacote resultante seja enviado através de um canal de 10 Mbps. Ignore o controle de fluxo e de congestionamento, de modo que A pode enviar os segmentos continuamente o mais rapidamente possível.

Page 47: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-47

Problema 18

Na Figura 3.31. vemos que o TCP espera até que tenha recebido três ACKs duplicados antes de executar uma retransmissão rápida. Por que você acha que os projetistas do TCP escolheram não efetuar uma retransmissão rápida logo após a recepção da primeira duplicata do ACK para um dado segmento?

Page 48: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-48

Figura3.31

00 sendbase = número de seqüência inicial01 nextseqnum = número de seqüência inicial0203 loop (forever) { 04 switch(event) 05 event: dados recebidos da aplicação acima06 cria segmento TCP com número de seqüência nextseqnum 07 inicia temporizador para segmento nextseqnum 08 passa segmento para IP 09 nextseqnum = nextseqnum + comprimento(dados) 10 event: expirado temporizador de segmento c/ no. de seqüência y 11 retransmite segmento com número de seqüência y 12 calcula novo intervalo de temporização para segmento y 13 reinicia temporizador para número de seqüência y 14 event: ACK recebido, com valor de campo ACK de y 15 se (y > sendbase) { /* ACK cumulativo de todos dados até y */ 16 cancela temporizadores p/ segmentos c/ nos. de seqüência < y 17 sendbase = y 18 } 19 senão { /* é ACK duplicado para segmento já reconhecido */ 20 incrementa número de ACKs duplicados recebidos para y 21 if (número de ACKs duplicados recebidos para y == 3) { 22 /* TCP: retransmissão rápida */ 23 reenvia segmento com número de seqüência y 24 reinicia temporizador para número de seqüência y 25 } 26 } /* fim de loop forever */

RemetenteTCPsimplificado

Page 49: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-49

Problema 19

Considere o procedimento do TCP para estimar o RTT (tempo de ida e volta). Suponha que x = 0,1. Seja SampleRTT1 a amostra mais recente do RTT, seja SampleRTT2 a amostra do RTT anterior a ela, etc.

a) Para uma dada conexão TCP, suponha que quatro reconhecimentos tenham sido recebidos com as respectivas amostras de RTT SampleRTT4, SampleRTT3, SampleRTT2 e SampleRTT1. Expresse EstimatedRTT em termos das quatro amostras do RTT.

Page 50: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-50

Problema 19 (cont.)

b) Generalize a sua fórmula para n amostras de tempo de ida e volta.

c) Para a fórmula da parte (b) deixe que n tenda a infinito. Comente o porquê deste procedimento de média ser chamado de média móvel exponencial.

Page 51: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-51

Problema 20

Em relação à Figura 3.51 que ilustra a convergência do algoritmo de crescimento aditivo e decrescimento multiplicativo do TCP, suponha que ao invés de um decrescimento multiplicativo, o TCP diminuísse o tamanho da janela por um valor constante.

O algoritmo resultante, com crescimento e decrescimento aditivos, convergiria para um algoritmo que divida igualmente a banda?

Justifique a sua resposta utilizando um diagrama semelhante ao da Figura 3.51.

Page 52: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-52

Figura 3.51

Duas sessões concorrentes: Aumento aditivo dá gradiente de 1, enquanto vazão

aumenta decrementa multiplicativa diminui vazão proporcionalmente

R

R

compartilhamento igual da banda

Vazão da conexão 1

Vazã

o d

a c

onexão 2

evitar congestionamento: aumento aditivoperda: diminui janela por fator de 2

evitar congestionamento: aumento aditivoperda: diminui janela por fator de 2

Page 53: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-53

Problema 21

Relembre o modelo idealizado para a dinâmica do TCP em regime permanente. No período de tempo desde que a janela da conexão varia de (W.MSS)/2 para W.MSS, é perdido apenas um pacote (ao final do período).

a) Mostre que a taxa de perdas (L) é igual a

wwL

43

83

1

2

Page 54: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-54

Problema 21 (cont.)

b) Use o resultado acima para mostrar que se uma conexão tem taxa de perda L, então a sua largura de banda média é dada aproximadamente por:Largura de banda média da conexão ~

1,22 . MSS/[RTT.sqrt(L)]

Page 55: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-55

Problema 22

Considere enviar um objeto de tamanho O = 100 Kbytes do servidor para o cliente. Seja S = 536 bytes e RTT = 100 mseg. Suponha que o protocolo de transporte utilize janelas estáticas de tamanho W. a) Para uma taxa de transmissão de 28 Kbps,

determine a menor latência possível. Determine o tamanho mínimo da janela que atinge esta latência.

b) Repita (a) para 100 Kbps. c) Repita (a) para 1 Mbps. d) Repita (a) para 10 Mbps.

Page 56: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-56

Problema 23

Suponha que o TCP incremente a sua janela de congestionamento de dois ao invés que de um para cada reconhecimento recebido durante a partida lenta. Portanto, a primeira janela consistiria de um segmento, a segunda de três segmentos, a terceira de nove segmentos, etc. Para este procedimento de partida lenta:

a) Expresse K em termos de O e S. b) Expresse Q em termos de RTT, S e R. c) Expresse a latência em termos de P =

min(K-1,Q), O, R e RTT.

Page 57: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-57

Problema 24

Considere o caso em que RTT = 1 segundo e O = 100 Kbytes. Prepare um gráfico (semelhante aos da Seção 3.7.2) que compare a latência mínima (O/R+2 RTT) com a latência com a partida lenta para R = 28 Kbps, 100 Kbps, 1 Mbps e 10 Mbps.

Page 58: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-58

TCP: modelagem de latência

Caso 1: latência = 2RTT + O/R Caso 2: latência = 2RTT + O/R

+ (K-1)[S/R + RTT - WS/R]

K:= O/WS

Page 59: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-59

Problema 25

Verdadeiro ou Falso? a) Se uma página Web consistir de

exatamente um objeto, então as conexões não-persistente e persistente terão exatamente o mesmo tempo de resposta.

b) Considere enviar um objeto de tamanho O de um servidor para um browser através do TCP. Se O > S, onde S é o tamanho máximo do segmento, então o servidor dará pelo menos uma parada.

Page 60: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-60

Problema 25

Verdadeiro ou Falso? c) Suponha que uma página Web consiste

de 10 objetos, cada um de tamanho O bits. Para o HTTP persistente, a parcela do tempo de resposta correspondente aos tempos de ida e volta é de 20 RTT.

d) Suponha que uma página Web consiste de 10 objetos, cada um de tamanho O bits. Para o HTTP não-persistente com 5 conexões paralelas, a parcela do tempo de resposta correspondente aos tempos de ida e volta é de 12 RTT.

Page 61: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-61

Problema 26

A análise para janelas dinâmicas no texto assume que existe apenas um enlace entre o servidor e o cliente.

Refaça a análise para T enlaces entre o servidor e o cliente.

Assuma que a rede não congestione de modo que os pacotes não sofrem atrasos de enfileiramento. No entanto, os pacotes experimentam o atraso de armazenamento-e-retransmissão.

Page 62: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-62

Problema 26 (cont.)

A definição do RTT é a mesma apresentada na seção sobre controle de congestionamento do TCP.

(Dica: O tempo desde que o servidor envia o primeiro segmento até receber o reconhecimento é TS/R + RTT).

Page 63: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-63

Problema 27

Recorde a discussão no final da Seção 3.7.3 sobre o tempo de resposta para uma página Web.

Para o caso de conexões não-persistentes, determine uma expressão geral para a fração do tempo de resposta que é devida à partida lenta do TCP.

Page 64: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-64

Problema 28

No HTTP persistente, todos os objetos são enviados pela mesma conexão TCP.

Como discutido no Capítulo 2, uma das motivações por trás do HTTP persistente (com pipelining) é diminuir os efeitos do estabelecimento da conexão TCP e a partida lenta no tempo de resposta para a página Web.

Neste problema, nós investigamos o tempo de resposta para HTTP persistente.

Assuma que o cliente solicita todas as imagens de uma só vez, mas apenas após receber toda a página HTML básica.

Page 65: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-65

Problema 28 (cont.)

Seja M + 1 o número de objetos e O o tamanho de cada objeto.

a) Mostre que o tempo de resposta toma a forma (M + 1)O/R + 3RTT + latência devido à partida lenta. Compare a contribuição dos RTTs nesta expressão com a contribuição no HTTP não-persistente.

Page 66: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-66

Problema 28 (cont.)

b) Assuma que K = log2 (O/S + 1) é um inteiro; portanto, a última janela do arquivo HTML base transmite uma janela inteira de segmentos, ou seja, a janela K transmite 2K-1 segmentos. Seja P´= min{Q,K´- 1} e

Note que K´ é o número de janelas que cobrem um objeto de comprimento (M+1)O e P´ é o número de períodos de interrupção ao enviar o objeto grande sobre uma única conexão TCP.

11log2 S

OMK

Page 67: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-67

Problema 28 (cont.)

Suponha (incorretamente) que o servidor possa enviar as imagens sem esperar pelo pedido formal de imagens pelo cliente.

Mostre que o tempo de resposta é o mesmo de enviar um objeto grande de tamanho (M+1)O:

R

S

R

SRTTP

R

OMRTT P 12

)1(2

Page 68: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-68

Problema 28 (cont.)

c) O tempo de resposta real para o HTTP persistente é um pouco maior do que a aproximação acima. Isto acontece porque o servidor deve esperar por uma solicitação das imagens antes de enviá-las. Em particular, o tempo de interrupção entre a K-ésima e a (K+1)-ésima janela não é

[S/R + RTT + 2K-1(S/R)]+ e sim RTT. Mostre então que o tempo de resposta é dado

por:

1212

)1(3 KP

R

SRTT

R

S

R

S

R

SRTTP

R

OMRTT

Page 69: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-69

Problema 29

Considere o cenário em que RTT = 100 mseg, O = 5 Kbytes, S = 536 bytes e M = 10.

Construa um gráfico que compare os tempos de resposta para conexões não-persistente e persistente para 28 Kbps, 100 Kbps, 1 Mbps e 10 Mbps.

Note que o HTTP persistente possui um tempo de resposta substancialmente menor que o HTTP não-persistente para todas as taxas de transmissão, exceto a de 28 Kbps.

Page 70: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-70

Problema 30

Repita a questão acima para o caso de RTT = 1 seg, O = 5 Kbytes, S = 536 bytes e M = 10.

Note que para estes parâmetros, o HTTP persistente possui um tempo de resposta significativamente inferior que o do HTTP não-persistente para todas as taxas de transmissão.

Page 71: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-71

Problema 31

Considere agora o caso do http não-persistente com conexões TCP paralelas. Lembre que os browsers tipicamente operam neste modo quando utilizam o HTTP/1.0.

Seja X o número máximo de conexões paralelas que o cliente (browser) tem permissão para abrir.

Neste modo, o cliente inicialmente utiliza uma conexão TCP para obter o arquivo HTML base. Após receber este arquivo HTML base o cliente estabelece M/X conjuntos de conexões TCP, onde cada conjunto possui X conexões paralelas.

Page 72: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-72

Problema 31 (cont.)

Argumente que o tempo total de resposta toma a forma de:

Tempo de resposta = (M + 1)O/R + 2(M/X + 1) RTT + latência devida às interrupções da partida lenta.

Compare a contribuição do termo envolvendo o RTT para o caso das conexões persistentes com o caso de conexões não-persistentes (e não-paralelas).

Page 73: 3: Camada de Transporte3c-1 Capítulo 3: Questões de Revisão.

3: Camada de Transporte 3c-73

Questões de Discussão

1. Considere áudio armazenado em streams. Faz sentido rodar a aplicação sobre o UDP

ou sobre o TCP? Qual deles a RealNetworks utiliza? Por que? Há algum outro produto de áudio

armazenado em streams? Que protocolos de transporte eles utilizam e

por que?