Você está na página 1de 3

Exerccio 3

Disciplina: Redes de Computadores


Prof. Dr. Nilton Alves Maia
Aluno: _________________________________________________ Num: __________

1) O DNS costuma ser empregado para traduzir nomes de hospedores fornecidos por usurios para endereos IP. Outros
servios importantes providos pelo DNS so: Apelidos (aliasing) de hospedeiro, apelidos de servidor de correio e
distribuio de carga. Descreva estes servios.

2) Os servidores DNS raiz, TLD e autoritativo pertencem a hierarquia de servidores DNS. O que so e para que servem
estes servidores? Explique.

3) O que servidor DNS local? Para que serve? Explique.

4) O que so consultas recursivas? O que so consultas iterativas? Utilize a figura a seguir para ilustrar a sua explicao.



5) O DNS um banco de dados distribudo que armazena registros de recursos (RR). Quais os campos que
compem um registro de recurso? Quais os significados de cada um deles? De exemplos de aplicao dos
registros do tipo A, NS, CNAME e MX.

6) O programa nslookup est disponvel na maioria das plataformas Windows e Unix. O que faz este programa?
Pesquise, teste-o e depois d pelo menos um exemplo de sua utilizao.

7) Leia o artigo Segurana em foco da pgina 105 do captulo 2 do livro texto. Em sua opinio quais os pontos mais
importantes deste artigo? Porque?







8) Teste o programa abaixo:

import java.net.*;
public class P1Oreilly {
public static void main (String[] args) {
try {
InetAddress address = InetAddress.getByName("www.oreilly.com");
System.out.println(address);
}
catch (UnknownHostException e) {
System.out.println("Could not find www.oreilly.com");
}
}
}

9) Teste o programa abaixo:

import java.net.*;
public class P3MyAddress {
public static void main (String[] args) {
try {
InetAddress me = InetAddress.getLocalHost( );
String dottedQuad = me.getHostAddress( );
System.out.println("My address is " + dottedQuad);
}
catch (UnknownHostException e) {
System.out.println("I'm sorry. I don't know my own address.");
}
}
}

10) Teste o programa abaixo:

import java.net.*;
public class WhoIs { public static void main(String[] args) {

try {
InetAddress meuIP = InetAddress.getLocalHost();
System.out.println("Local host " + meuIP.getHostName() + " at IP address " + meuIP.getHostAddress());
}
catch (UnknownHostException uhe) { System.err.println(uhe); }
//------ Processamento dos argumentos na linha de comando ------/
int count = 0;
InetAddress outroHost;
while (count < args.length) {
try {
outroHost = InetAddress.getByName(args[count]);
System.out.println("Host " + outroHost.getHostName() + " is at IP address " + outroHost.getHostAddress());
}
catch (UnknownHostException uhe) {
System.err.println(uhe);
}
++count;
}
}
}


11) Teste o programa os programas cliente e Servidor abaixo:

// Programa de Servidor0.java sem tratamento de excecoes
import java.net.*;
import java.io.*;
public class Servidor0 {
// porta padrao
public final static int DEFAULT_PORT = 1324;
public static void main(String[] args) throws Exception {
int porta = DEFAULT_PORT;
ServerSocket servidor = new ServerSocket(porta,5);
System.out.println("Servidor criado na porta " + porta);
Socket conexao = null;
while(true) {
System.out.println("Servidor esperando conexao na porta " + porta);
conexao = servidor.accept( ); // esperando uma conexao
System.out.println("Servidor recebeu conexao");
ObjectOutputStream saida = new ObjectOutputStream(conexao.getOutputStream());
saida.writeObject("Servidor: estou localizado na maquina " + InetAddress.getLocalHost());
saida.flush();
conexao.close();
} // --- fim do while
} // --- fim do main
} // ---- fim da classe

// Programa de Cliente0.java basico sem tratamento de excecoes
import java.net.*;
import java.io.*;
public class Cliente0 {
public final static int DEFAULT_PORT = 1324; // porta padrao
public static void main(String[] args) throws Exception {
int porta = DEFAULT_PORT;
String host = "localhost";
Socket s = new Socket(host,porta);
ObjectInputStream entrada = new ObjectInputStream(s.getInputStream());
System.out.println((String) entrada.readObject());
entrada.close();
} // --- fim do main
} // ---- fim da classe

Estes programas utilizam sockets TCP ou UDP? Justifique sua resposta.

12) Construa um servidor TCP que aceite a ligao de um cliente TCP de cada vez, e que devolva ao cliente cada linha de
texto que este lhe envie.

13) Construa um cliente TCP para o servidor de eco desenvolvido no exerccio anterior e teste o funcionamento dos
programas.







Referncia:

Kurose, James F. , Ross, Keith W. Redes de computadores e a Internet: uma nova abordagem. Addison Wesley, 2003