You are on page 1of 4

UNIVERSIDADE DO ALGARVE

FACULDADE  DE  CIÊNCIAS  E  TECNOLOGIA

Exame de Redes I (Época Recurso)
Dia: 24/07/2007 Ano Lectivo: 2006/2007 Duração: 1h:30m
Nome: Nº
- PARTE I -
(60%)

CONCEITOS GERAIS

1. Assuma a existência de uma linha a 1 Mbps partilhada por mais que um utilizador. Assuma ainda que
cada utilizador transmite apenas 10% do tempo e que, quando transmite, cada utilizador necessita de
uma taxa de transmissão de 500 kbps. Assumindo o uso de comutação por pacotes, qual das
seguintes afirmações é verdadeira:
□ Para três utilizadores a fração de tempo durante a qual as queues irão crescer é de 0.001.
□ Para três utilizadores a fração de tempo durante a qual as queues irão crescer é de 0.01.
□ Para dez utilizadores a fração de tempo durante a qual as queues irão crescer é de 0.001.
□ Para dez utilizadores a fração de tempo durante a qual as queues irão crescer é de 0.01.

2. As redes comutada por pacotes podem ser classificadas em redes datagrama e redes baseadas em
circuitos virtuais. Indique qual das seguintes afirmações melhor descreve a forma como são
estabelecidos caminhos e como é feito o encaminhamento nestes tipos de redes:
□ Numa rede datagrama os pacotes são encaminhados com base no endereço do host destino. Por este motivo, e ao
contrário das rede de circuitos virtuais, é necessário manter informação sobre o estado da conexão em todos os
comutadores intermediários.
□ Numa rede de circuitos virtuais os pacotes são encaminhados com base no endereço do host destino. Por este
motivo, e ao contrário das rede de pacotes, é necessário manter informação sobre o estado da conexão em todos os
comutadores intermediários.
□ Numa rede datagrama os pacotes são encaminhados com base no endereço do host destino. Ao contrário das rede
de circuitos virtuais, não é necessário manter informação sobre o estado da conexão em todos os comutadores
intermediários.
□ Numa rede de circuitos virtuais os pacotes são encaminhados com base num identificador de circuito, informação
contida no header do pacote. Ao contrário das rede de pacotes, não é necessário manter informação sobre o estado da
conexão em todos os comutadores intermediários.

CAMADA DE APLICAÇÃO

3. Assuma que necessita de recolher dados de um sensor a uma frequência de 1 amostra por segundo.
Sendo a visualização dos valores mais recentes de extrema importância, qual dos protocolos de
transporte seria mais adequado ao envio destes dados e porquê?
□ O TCP uma vez que garante a entrega fiável dos dados.
□ O UDP uma vez que não é orientado à conexão.
□ O TCP uma vez que possui mecanismos de permitem regular o congestionamento na rede.
□ O UDP uma vez que não se preocupa com a recuperação de dados perdidos.

4. Considere uma linha com taxa de transmissão de 100 bits/sec em ambas as direções. Assuma que
numa ligação HTTP os pacotes contendo dados têm 100 Kbits de tamanho e que os pacotes contendo
informação de controlo (handshaking) têm 100 bits de tamanho. Assuma ainda que a existência de N
ligações em paralelo significa a atribuição de 1/N da largura de banda a cada uma das ligações.
Considerando que o objecto inicial recebido possui referência a mais 10 objectos indique qual das
seguintes afirmações é verdadeira:
□ Uma ligação não persistente com conexões em paralelo tornaria a transferência mais rápida.
□ Uma ligação persistente tornaria a transferência mais rápida (melhoria > 10%).
□ Uma ligação persistente com pipelining tornaria a transferência mais rápida (melhoria > 10%).
□ Uma ligação persistente com pipelining não tornaria a transferência muito mais rápida (melhoria = 2%).

5. Qual das seguintes afirmações não se aplica ao protocolo SMTP?


□ É um protocolo da camada de aplicação.
□ É um protocolo de acesso ao email.
□ Utiliza o protocolo TCP para transferência de dados de forma fiável.
□ Não utiliza servidores intermediários para o envio de emails.
CAMADA DE TRANSPORTE

6. Considere o protocolo Selective Repeat (SR) usado na transferência fiável de dados. Suponha que o
conjunto de números de sequência usados tem tamanho N e que o tamanho da janela é igual a N/2.
Funcionaria este protocolo correctamente?
□ Sim. A relação entre o tamanho da janela e o conjunto de números de sequência permite que o protocolo funcione
bem.
□ Sim. O tamanho da janela poderá crescer até N.
□ Não. O tamanho da janela não pode exceder ¼ de N.
□ Não. O tamanho da janela não pode ser igual a ½ de N.

7. Considere que foi estabelecida uma conexão TCP entre um Host A e um Host B, e que o Host B já
recebeu (do Host A) e confirmou até ao byte 144. Assuma ainda que o Host A envia dois novos
segmentos com 20 e 40 bytes respectivamente, número de porto fonte 1030 e número de porto destino
80. Que informação deverá o Host B colocar na primeira confirmação (ACK)?
□ Se o primeiro segmento chegar primeiro: acknowledgement number=165, source port number=80, destination
port=303. Se o segundo segmento chegar primeiro: acknowledgement number=145, source port number=80,
destination port=303.
□ Se o primeiro segmento chegar primeiro: acknowledgement number=165, source port number=80, destination
port=303. Se o segundo segmento chegar primeiro: acknowledgement number=205, source port number=80,
destination port=303.
□ Se o primeiro segmento chegar primeiro: acknowledgement number=164, source port number=80, destination
port=303. Se o segundo segmento chegar primeiro: acknowledgement number=144, source port number=80,
destination port=303.
□ Se o primeiro segmento chegar primeiro: acknowledgement number=164, source port number=303, destination
port=80. Se o segundo segmento chegar primeiro: acknowledgement number=204, source port number=303,
destination port=80.

CAMADA DE REDE

8. Assuma que uma empresa possui o bloco de endereços 129.17.129.96/27. Supondo que a empresa
pretende criar 4 subredes IP, com a mesma quantidade de endereços para hosts, quais serão os prefixos
a serem usados para as 4 subredes?
□ 129.17.129.96/27, 129.17.129.104/27, 129.17.129.112/27 e 129.17.129.120/27.
□ 129.17.129.96/29, 129.17.129.104/29, 129.17.129.112/29 e 129.17.129.120/29.
□ 129.17.129.96/27, 129.17.129.112/27, 129.17.129.128/27 e 129.17.129.144/27.
□ 129.17.129.96/29, 129.17.129.112/29, 129.17.129.128/29 e 129.17.129.144/29.

9. Considere o envio de um datagrama IP de 1960 bytes através de um link com MTU de 980 bytes.
Assuma ainda que o header IP ocupa 20 bytes e que o numero de identificação do datagrama é 227.
Indique quantos fragmentos IP serão gerados e sua identificação?
□ Serão gerados 3 fragmentos com identificações 227, 228 e 229, respectivamente.
□ Serão gerados 3 fragmentos todos com identificação 227.
□ Serão gerados 2 fragmentos com identificações 227 e 228, respectivamente.
□ Serão gerados 2 fragmentos ambos com identificação 227.

CAMADA DE LIGAÇÃO E REDES LOCAIS

10. Quais das seguintes afirmações melhor descreve um protocolo CSMA/CD?


□ É um protocolo que detecta e evita colisões.
□ É um protocolo que não detecta nem evita colisões.
□ É um protocolo que detecta mas não evita colisões.
□ É um protocolo que evita colisões.

11. Quando está a ser usado um protocolo CSMA/CD, qual a probabilidade de um nó escolher K=3 após
uma quarta colisão, tendo assim que aguardar 3*512/10Mbps = 153.6 microsegundos para retransmitir
numa linha a 10 Mbps?
□ 1/16.
□ 1/8.
□ 1/2.
□ 1.

12. Suponha que uma empresa pretende colocar 4 PCs a comunicarem entre si. Assumindo que as placas
de rede destes PCs funcionam a 10 Mbps ou 100 Mbps, qual seria a solução mais viável para esta
empresa?
□ Ligar os 4 PCs a um Switch.
□ Ligar os 4 PCs a um Hub.
□ Ligar os 4 PCs a um Router.
□ Ligar os 4 PCs a um Hub ou a um Switch.
- PARTE II -
(40%)

1. Considere o seguinte formato de uma mensagem DNS query/response.

<------------- 2 bytes -------------><------------ 2 bytes ------------>


+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+ Identification + Flags +
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+ #Questions + #Answer (RRs) +
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+ #Authority (RRs) + #Additional (RRs) +
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
~ Questions ~
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
~ Answers ~
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
~ Authority ~
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
~ Additional ~
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

Na secção Flags os bits relevantes são os seguintes (da esquerda para a direita):

- Bit 0: Query=0, Response=1


- Bit 5: Authoritative answer=1; Non Authoritative answer=0;
- Bit 6: Response truncated=1; Response not truncated=0;
- Bit 7: Recursion desired=1; Recursion not desired=0;
- Bit 8: Recursion available=1; Recursion not available=0;

a) Comente muito bem todas as linhas de código que se seguem.

Ver no livro do Kurose a aplicação UDP cliente e servidora (capítulo 2).

b) Responda, justificando, às seguintes questões:

– Qual o tipo de mensagem que está a ser criada?

– Qual o número (em decimal) que identifica a mensagem?

– De que local deverá ser obtida a informação (RRs) incluida nesta mensagem?

– Que método deverá/está a ser usado na obtenção da informação? Quais as consequências?

class Function {
public static void main(String args[]) throws Exception
{
DatagramSocket newSocket = new DatagramSocket(53);

byte[] receiveData = new byte[1024];

byte[] sendData = new byte[1024];

while(true)
{

DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);

serverSocket.receive(receivePacket);

InetAddress IPAddress = receivePacket.getAddress();

int port = receivePacket.getPort();

// ....

sendData[0] = 2;
sendData[1] = 3;

sendData[2] = 132;

sendData[3] = 128;

sendData[4] = 0;

sendData[5] = 0;

sendData[6] = 0;

sendData[7] = 1;

sendData[8] = 0;

sendData[9] = 2;

sendData[10]= 0;

sendData[11]= 1;

// restante dados da mensagem ...

DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);

newSocket.send(sendPacket);
}
}
}

2. Na função que se segue preencha a informação que falta de forma a que seja enviado um email do
utilizador “aluno123”, com conta no servidor de email “sala_aula.pt”, para o utilizador “docente” com
conta no servidor de email “gabinete.pt”. O conteudo da mensagem deverá ser “Isto é canja!”. Comente
as suas linhas de código.

class MailServer {public static void main(String argv[]) throws Exception


{ String fromServer;

Socket clientSocket = new Socket(“ ”, );

DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());

BufferedReader inFromServer = new BufferedReader(new InputStreamReader


(clientSocket.getInputStream()));

// exemplo de leitura de dados do servidor


// fromServer=inFromServer.readLine();

// exemplo de envio de dados para servidor


// outToServer.writeBytes("Olá, tudo bem?);

outToServer.writeBytes(" \n");
fromServer=inFromServer.readLine();

outToServer.writeBytes(" \n");
fromServer=inFromServer.readLine();

outToServer.writeBytes(" \n");
fromServer=inFromServer.readLine();

outToServer.writeBytes(" \n");
fromServer=inFromServer.readLine();

outToServer.writeBytes(" \n");
outToServer.writeBytes(" \n");
outToServer.writeBytes(" \n");
fromServer=inFromServer.readLine();

clientSocket.close();
}
}