Você está na página 1de 6

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - UFRGS

INSTITUTO DE INFORMÁTICA - INF


DEPARTAMENTO DE INFORMÁTICA APLICADA

Disciplina​: Redes de Computadores N (Parte Teórica)


Código:​ INF01154

PROVA 1

NOME​: _____________________________________________________________________ ​CARTÃO​: _________________

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 RTT​1​, ..., RTT​n​. Suponha, ainda, que a página apontada pelo referido ​link
contenha exatamente um objeto que consiste em uma pequena quantidade de texto HTML. Seja RTT​0 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 RTT​0​) e de obter o objeto em
questão (1 RTT​0​). 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) RTT​0 por conta dos 11 objetos referenciados no arquivo HTML
origina​l. 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 RTT​0​), e 5/5/1 objetos serão requisitados e respondidos em paralelo, perfazendo mais
3 RTT​0​. 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) RTT​0​. 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) RTT​0​. 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) RTT​0​. 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) RTT​0 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 DN​S autoritativo do MIT (ex:
dns.mit.edu​). Por fim, o servidor DNS local re-envia a requisição diretamente ao servidor DNS autoritativo d​o 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) po​dem 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).

QUESTÃO 6:​ Considere as seguintes afirmações sobre o protocolo TCP.


I. O ​host A está enviando ao ​host B um arquivo grande por uma conexão TCP. Suponha que B também tenha dados
para enviar para A. O ​host B poderá enviar confirmações (ACKs) para A via os próprios pacotes de dados de B para
A.
II. O tamanho de ​rwnd​ do TCP nunca muda enquanto dura a conexão.
III. Suponha que o ​host A envie dois segmentos TCP um atrás do outro ao ​host B. O primeiro tem número de sequência
85, e o segundo, número de sequência 105. O primeiro segmento possui 20 bytes.
IV. Imagine que o ​host A envie ao ​host B, via conexão TCP, um segmento com o número de sequência 50 e 5 bytes de
dados. Nesse mesmo segmento o número de reconhecimento (​acknowledgment number)​ será necessariamente 55.
V. Suponha que um servidor ​web seja executado no ​host C na porta 80. Esse servidor utiliza conexões persistentes e,
no momento, está recebendo solicitações de dois ​hosts diferentes, A e B. Todas as solicitações estão sendo
enviadas por meio do mesmo ​socket​ no computador C.

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).

Segue abaixo um diagrama para a visualização dos três casos.

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).

Você também pode gostar