Escolar Documentos
Profissional Documentos
Cultura Documentos
PROVA 1
As questões com “justifique”, “explique” ou “descreva” serão avaliadas APENAS em função dessas.
QUESTÃO 1: Um comutador de pacotes recebe um pacote X e determina o enlace de saída pelo qual deva ser enviado.
Quando o pacote X chega, outro Y já está sendo transmitido nesse enlace de saída e outros cinco (A, B, C, D e E) já estão
esperando para serem transmitidos. Os pacotes são transmitidos em ordem de chegada. Suponha que todos os pacotes
tenham 1.000 bytes e que a taxa do enlace seja 4 Mbps. Qual é o atraso de fila para o pacote X? Explique.
O pacote X será colocado ao final da fila de encaminhamento e, portanto, só será transmitido após todos os outros (Y, A-E)
o serem. Considerando que no momento da chegada do pacote X ainda falte transmitir uma fração p do pacote Y, e que
cada pacote tem 1.000 bytes, isso significa (para o pacote X) esperar a transmissão de (5 + P) * 1.000 bytes; e.g., se o
pacote Y está no meio da transmissão, p = 0.5 e a transmissão total será de 5.500 bytes (= 44.000 bits). Como a taxa de
transmissão é de 4 Mbps, o tempo de enfileiramento (em segundos) será o total a ser transmitido (em bits) dividido por
4.000.000. No caso anterior (44.000 bits), o atraso de fila para X será de 44.000/4.000.000 = 0.011 segundos (= 11 ms).
QUESTÃO 2: Considere o envio de um pacote de uma máquina de origem a uma de destino. Relacione e descreva os
componentes de atraso que formam o atraso fim-a-fim. Quais deles são constantes e quais são variáveis.
O atraso fim-a-fim será igual a soma dos atrasos salto-a-salto ao longo do caminho. Para um salto (e.g., host- roteador,
roteador-roteador, roteador-host) , o atraso total será igual a soma dos atrasos de fila, de processamento, de transmissão
e de propagação. O atraso de fila (como visto na questão anterior) depende do número de pacotes enfileirados em cada
roteador e, portanto, é variável ao longo do tempo (e ao longo do caminho também). O atraso de processamento é o
tempo que o dispositivo leva para processar os cabeçalhos do pacote e definir seu destino (e possivelmente realizar outras
checagens). Geralmente é constante e negligenciável em comparação aos outros atrasos. O atraso de transmissão é o
tempo necessário para “empurrar” todos os bits pelo enlace. É variável, pois depende principalmente da largura de banda
do enlace e do tamanho do pacote. Por fim, o atraso de propagação é o tempo entre o pacote/bit ser enviado na origem e
recebido no destino (salto, não fim-a-fim); depende do meio (velocidade de propagação) e distância entre os pontos, sendo
portanto constante.
QUESTÃO 3: Considere que você clique, ao utilizar o seu navegador web, em um link para obter uma página e que o
endereço IP para o URL associado não esteja na cache de seu host local. Portanto, será necessária uma consulta ao DNS
para obter o endereço IP. Considere que n servidores DNS sejam visitados antes que seu host receba o endereço IP do DNS;
as visitas sucessivas incorrem em um RTT igual a RTT1, ..., RTTn. Suponha, ainda, que a página apontada pelo referido link
contenha exatamente um objeto que consiste em uma pequena quantidade de texto HTML. Seja RTT0 o RTT entre o host
local e o servidor que contém o objeto. Admita, por fim, que o tempo de transmissão seja 0.
a. Quanto tempo decorrerá desde que o cliente clica no link até que, de fato, receba o objeto? Justifique.
n
∑ RT T i + 2 × RT T 0
i=1
O primeiro termo (somatório) refere-se às sucessivas requisições DNS até se obter o endereço IP da página desejada. O
segundo termo refere-se ao tempo de iniciar uma conexão TCP com o servidor referido (1 RTT0) e de obter o objeto em
questão (1 RTT0). Veja o diagrama abaixo.
Suponha que o arquivo HTML referencie 11 (onze) objetos muito pequenos no mesmo servidor. Quanto tempo decorrerá
desde que o cliente clica no link até que, de fato, receba a página web completa, usando-se:
b. HTTP não persistente com o navegador configurado para 5 (cinco) conexões paralelas? Justifique.
O tempo será igual ao calculado em (a), acrescido de 6 (seis) RTT0 por conta dos 11 objetos referenciados no arquivo HTML
original. Como em (a), e por considerarmos HTTP não persistente, precisarão ocorrer três novas "rodadas" de abertura de
(até 5) conexões paralelas (custo de 3 RTT0), e 5/5/1 objetos serão requisitados e respondidos em paralelo, perfazendo mais
3 RTT0. Veja o diagrama abaixo (apenas o que ocorre após o diagrama de (a)).
c. HTTP persistente? Justifique.
Utilizando pipeline ( para todas as requisições): O tempo será igual ao calculado em (a), acrescido em 1 (um) RTT0. Ao abrir a
conexão e recuperar o HTML original (como em (a)), a conexão não é fechada, e o cliente pode, então, requisitar em
pipeline todos os objetos referenciados, a um custo de 1 (um) RTT0. Veja o diagrama abaixo (apenas o que ocorre após o
diagrama de (a)).
Sem pipeline: O tempo será igual ao calculado em (a), acrescido em 11 (onze) RTT0. Como no caso com pipeline, a conexão
não é fechada, mas por não utilizar pipeline, os 11 objetos precisam ser requisitados e recebidos sequencialmente (ou seja,
um objeto só é pedido quando o anterior já foi recebido), ao custo de 1 (um) RTT0 cada.
QUESTÃO 4: Suponha que Alice, usuária na rede INF-UFRGS, deseje acessar a página web disponível no URL
http://www.mit.edu/research.html. Assuma, ainda, que o endereço IP correspondente a esse URL não esteja
armazenado em nenhuma cache. Descreva, passo a passo, como ocorrerá o procedimento de resolução desse URL em seu
IP correspondente, via protocolo DNS usando consultas iterativas. Não esqueça de informar o tipo de servidor DNS
consultado em cada iteração.
O host (Alice) irá requisitar ao servidor de DNS local (ex: dns.ufrgs.br) o IP para o hostname desejado (mit.edu). O
servidor de DNS local (por não ter o resultado em cache) repassa a requisição a um servidor DNS raiz. O servidor DNS raiz
observa o sufixo “edu”, e retorna ao servidor DNS local uma lista de IPs de servidores DNS TLD (Top-Level Domain)
responsáveis por este domínio. O servidor DNS local então re-envia a requisição a um destes servidores TLD, que observa o
sufixo “mit.edu” do hostname desejado, e retorna o endereço IP do servidor DNS autoritativo do MIT (ex:
dns.mit.edu). Por fim, o servidor DNS local re-envia a requisição diretamente ao servidor DNS autoritativo do MIT, que
responde o IP do host desejado (www.mit.edu), que é então repassado ao cliente (Alice). Essas interações estão
representadas na figura abaixo.
QUESTÃO 5: Suponha que Alice envie uma mensagem por meio de uma conta de email e que Bob acesse o seu email em
sua máquina local. Responda.
a. Que protocolo(s) de email pode(m) ser empregados para o envio da mensagem, que entidades de camada de aplicação
se comunicam e como se dá esse processo? Onde a mensagem enviada fica depositada? Explique.
O protocolo SMTP pode ser utilizado para transferir a mensagem do cliente (Alice) ao seu servidor de email e deste ao
servidor de email do destinatário (Bob). O processo pode ser visualizado na figura abaixo (retirada do livro), e conforme a
descrição dos passos que seguem:
Alice usa seu agente de e-mail, provê o endereço de e-mail de Bob, compõe a mensagem, e instrui o agente a enviar a
mensagem (fluxo 1 na figura acima). O agente (executando na máquina) da Alice abre uma conexão TCP com o servidor
SMTP em execução no servidor de e-mail da Alice. Após handshaking inicial do SMTP, o agente da Alice envia a mensagem
pela conexão (2), que é colocada em uma fila de mensagens (3). O "cliente" SMTP em execução no servidor de e-mail da
Alice percebe a mensagem na fila de mensagens. Ele abre uma conexão TCP com o servidor SMTP em execução no servidor
de e-mail do Bob. Após handshaking inicial do SMTP, o "cliente" SMTP envia a mensagem da Alice pela conexão (4). No
servidor de e-mail do Bob, o servidor SMTP recebe a mensagem, e então a coloca na caixa de mensagens do Bob (5).
b. Que protocolo(s) de email pode(m) ser empregados para a recuperação (e a leitura) da mensagem por Bob, que
entidades de camada de aplicação se comunicam e como se dá esse processo? Explique.
Os protocolos POP3, IMAP (e HTTP) podem ser utilizados por Bob para recuperar (e ler) a mensagem (fluxo 6 na figura
acima). Em cada caso, o protocolo de acesso de email irá conectar-se ao servidor de email do destinatário. Realizará a
autenticação do usuário através de suas credenciais, permitindo, então, a listagem de suas mensagens, a leitura, e o
gerenciamento dessas (por exemplo, a exclusão de alguma mensagem).
Quais afirmativas são corretas? Apenas para as afirmativas incorretas explique o porquê de elas estarem incorretas.
I. Correta. Possível com técnica chamada piggybacking (veja a Figura 3.31 do livro).
II. Incorreta. A janela rwnd vai variar ao longo da conexão de modo a refletir o espaço disponível no buffer (este sim
constante).
III. Correta. O número de sequência é igual ao offset do primeiro byte no segmento, logo a diferença entre dois
segmentos consecutivos indica o tamanho do primeiro dos segmentos, em bytes (105 - 85 = 20).
IV. Incorreta. O número de reconhecimento será definido pela transmissão de dados no sentido contrário. Como não
há simetria obrigatória nos dois sentidos, este número não necessariamente será 55.
V. Incorreta. Para cada conexão, o servidor web cria um socket de conexão, que é definido pelos IPs de origem e
destino, e portas de origem e destino. Neste caso, como os hosts são diferentes (IPs de A e B), as solicitações
serão tratadas em sockets diferentes.
QUESTÃO 7: Compare o GBN, o SR e o TCP (sem ACK atrasado/retardado). Admita que os valores de timeout para os três
protocolos sejam longos o suficiente de tal modo que 6 (seis) segmentos de dados consecutivos possam ser recebidos (se
não perdidos no canal) por um host receptor B e seus ACKs correspondentes possam ser recebidos (se não perdidos no
canal) por um host transmissor A. Suponha que A envie 6 (seis) segmentos de dados para B e que o terceiro desses
segmentos seja perdido. No fim, todos os 6 (seis) segmentos de dados foram corretamente recebidos pelo host B.
a. Quantos segmentos A enviou no total e quantos ACKs o host B enviou no total? Quais são seus números de sequência?
Explique. Responda a questão para os três protocolos.
GBN: A envia 10 (dez) segmentos no total. Primeiro, os segmentos de 0 a 5 são enviados; depois, os segmentos 2-5 são
re-enviados. B responde 9 (nove) ACKs para A; destes, o primeiro ACK com número de sequência 1, 4 (quatro) ACKs com
número de sequência 2 (por conta do segmento perdido) e 4 (quatro) ACKs com números de sequência 3,4,5,6.
SR: A envia 7 (sete) segmentos no total. Primeiro, os segmentos de 0 a 5 são enviados; depois, o segmento 2, que foi
perdido, é re-enviado. B responde 6 (seis) ACKs para A. Primeiro, os 5 (cinco) ACKs para os segmentos que não foram
perdidos (0,1,3,4,5) e, depois, 1 (um) ACK para o segmento re-enviado (2).
TCP: A envia 7 (sete) segmentos no total. Primeiro, os segmentos de 0 a 5 são enviados; depois, o segmento 2, que foi
perdido, é re-enviado. B responde 6 (seis) ACKs para A. Primeiro, ACKs 1 e 2 pelos dois primeiros segmentos entregues
corretamente (número é o próximo esperado); em seguida, 3 (três) ACKs 2 duplicados (por conta dos segmentos fora de
ordem recebidos); por fim, ao receber o segmento perdido (e re-enviado), um último ACK 6 (que confirma o recebimento
de todos os anteriores).
b. Se os valores de timeout para os três protocolos forem muito maiores do que 6 RTT, qual envia com sucesso todos os seis
segmentos de dados em um menor intervalo de tempo? Justifique.
O TCP é mais rápido, pois o mecanismo de fast retransmit permite que o segmento perdido seja re-enviado antes do
timeout expirar (o que ocorrerá em resposta aos três ACKs duplicados).