Você está na página 1de 16

UNIVERSIDADE ZAMBEZE

FACULDADE DE CIÊNCIAS E TECNOLOGIA


ENGENHARIA INFORMÁTICA – LABORAL
3º Ano/ Semestre VI

Programação em Redes de Computadores

Tema: LAN Adrress

Docente:
Msc. Eng. Taheer Mithá

Discentes:
António Cuata
Amarildo Mulandeza
Américo Tureva
Itelvino Leonardo

Beira
Setembro, 2019
Índice
Introdução:.......................................................................................................................................1
Internet Addressing (Endereçamento da Internet)...........................................................................2
Local Area Network Addresses (Endereços da rede local)............................................................2
Internet Protocol Addresses (Endereços de Protocolo da Internet).................................................3
Estrutura do endereço IP..................................................................................................................3
Obtendo um endereço IP.................................................................................................................4
Endereços IP especiais.....................................................................................................................5
Além dos endereços IP: O Sistema de Nomes de Domínio (DNS).................................................6
O que é um Nome de Domínio?......................................................................................................6
Como o Sistema de Nomes de Domínio funciona?.........................................................................6
Resolução de Nomes de Domínio....................................................................................................7
Endereçamento da Internet com Java..............................................................................................9
A classe java.net.InetAddress..........................................................................................................9
Usando o InetAddress para determinar o endereço do host local..................................................10
Como LocalHostDemo funciona...................................................................................................11
Executando LocalHostDemo.........................................................................................................11
Usando o InetAddress para descobrir outros endereços................................................................11
Como NetworkResolverDemoWorks............................................................................................12
Executando NetworkResolverDemo.............................................................................................12
Outros tipos de endereços em Java................................................................................................12
Conclusão:.....................................................................................................................................13
Referencias:...................................................................................................................................14
Introdução

Diferente das redes locais (LANs), a Internet é uma coleção de máquinas e dispositivos
espalhados pelo mundo. Quando existem centenas de milhões (e eventualmente bilhões) de
computadores e dispositivos conectados a uma rede, a necessidade de identificar e localizar um
específico é obviamente importante. De fato, um dos conceitos mais fundamentais em
programação de redes é o do endereço de rede. Sem ele, não haveria maneira de identificar o
remetente de um pacote de dados ou para onde o pacote deve ser enviado.

1
Local Area Network Addresses (Endereços da rede local)

Os dispositivos conectados a uma LAN têm seu próprio endereço físico ou de hardware. Isso
ajuda outras máquinas na rede, entregando pacotes de dados no local correto. O endereço é útil
apenas no contexto de uma LAN, no entanto - uma máquina não pode ser localizada na Internet
usando seu endereço físico, que não indica a localização da máquina. De fato, máquinas podem
frequentemente mover-se de local para local, no caso de laptops ou palmtops.
Programadores de redes em java não precisam se preocupar com detalhes de como dados são
direcionados dentro de uma rede local. Java não fornece acesso aos links de dados de nível baixo
usados por LANs, pois teria de ter acesso a uma vasta gama de protocolos, que usam cada um
endereços diferentes e com diferentes caracteristicas, códigos diferentes seriam necessários para
cada tipo de rede. Ao invés o java fornece suporte para TCP/IP que pode ser considerado a
ferramenta de ligação entre redes.

Internet Protocol Addresses (Endereços de Protocolo da Internet)

Os dispositivos com conexão direta à Internet recebem um identificador exclusivo conhecido


como endereço IP. Os endereços IP podem ser estáticos (na medida em que estão vinculados
permanentemente a uma determinada máquina ou
dispositivo) ou dinâmico (alugado para uma máquina ou dispositivo específico por um
determinado período, por exemplo, em
caso de um provedor de serviços de Internet [ISP] que oferece um conjunto de modems para
conexões dial-up).
Os endereços IP atribuídos dinamicamente são normalmente usados quando muitos dispositivos
requerem acesso à Internet por períodos limitados de tempo. Assim, os endereços podem ser
alocados a partir de um conjunto de endereços restantes no caso a caso. No entanto, um endereço
IP pode ser vinculado a apenas uma única máquina; não pode ser compartilhado
simultaneamente. Este endereço é usado pelo Protocolo da Internet para rotear datagramas IP
para o local correto. Sem um endereço, uma máquina não pode ser contactada; portanto, todas as
máquinas devem ter um endereço IP exclusivo.

Estrutura do endereço IP
Sob o Protocolo da Internet versão 4, chamado IPv4, o endereço IP é um número de 32 bits
criado de quatro octetos (uma série de 8 bits). Enquanto os computadores leem um endereço IP
como uma sequência de bits, as pessoas os veem no formato decimal pontilhado (por exemplo,

2
127.0.0.1). Existem cinco classes de IP endereços (A a E), e a cada classe é atribuído um
intervalo de endereços, conforme mostrado na tabela 1.
Cada classe de endereços IP é estruturada de maneira diferente, permitindo maior versatilidade
na maneira como redes e máquinas host são alocadas (figura 1) . Redes privadas recebem um ID
de rede que é um identificador exclusivo para uma rede específica. Controlo de e
responsabilidade de como máquinas em uma rede são alocadas são tarefas do administrador da
rede, para que os IDs do host possam ser atribuído conforme necessário.

Figura 1. Estruturas de endereço por classe

O motivo de uma divisão de classes de endereço IP que atribui maior ou menor peso ao campo
do ID do host é simples: cada rede privada precisa de seu próprio bloco de endereços IP, mas
alocando um bloco significa que esses endereços serão desperdiçados. Com um intervalo finito
de endereços, isso se torna particularmente importante à medida que o número de endereços
alocados aumenta. Por exemplo, o endereços de classe A, tem um campo de ID de rede muito
pequeno, mas um ID de host grande.

Tabela 1. Intervalo de endereços IP por classe


Tipo Intervalo de endereços
Classe A 0. 0. 0. 0 - 127.255.255.255
Classe B 128.0.0.0 - 191.255.255.255

3
Classe C 192.0.0.0 - 223.255.255.255
Classe D 224.0.0.0 - 239.255.255.255
Classe E 240.0.0.0 - 247.255.255.255

Obtendo um endereço IP
O órgão central responsável pela alocação de blocos de endereços IP é a Internet Corporation
para Nomes e números atribuídos (ICANN), com base no trabalho de uma organização anterior,
a Autoridade de números atribuídos à Internet (IANA). Uma pessoa que está configurando uma
rede privada seria atribuida um endereço de classe A, B ou C e pode atribuir endereços IP do
host as máquinas nessa rede específica.
A maneira mais comum de obter um endereço IP é que nos seja atribuído um por um
administrador de rede, ISP ou outro serviço de rede. Quando se estabelece uma conexão dial-up,
geralmente é se atribuído um endereço IP. Esse endereço é normalmente atribuído
dinamicamente a partir de um pool de endereços disponíveis e, quando você se reconecta,
geralmente recebe um endereço diferente. Em uma intranet, O administrador da rede pode
atribuir um endereço específico à nossa máquina ou podemos ter um endereço atribuído
dinamicamente e alocado por um servidor DHCP (Dynamic Host Control Protocol). O DHCP
fornece endereços sob demanda; Se as máquinas estiverem online e offline frequentemente, um
um pool menor de endereços pode ser usado.

Endereços IP especiais
Os programadores também devem estar cientes de alguns endereços IP especiais. O primeiro e
mais importante do ponto de vista da programação de rede, é conhecido como endereço de
loopback ou localhost. Ao escrever e depurar software de rede, os programadores geralmente
desejam se conectar à máquina local para fins de teste. Independentemente de existir uma
conexão com a Internet por meio de um serviço de discagem ou o trabalho estiver sendo
realizado offline, a máquina local pode ser acessada usando o endereço de loopback;
O endereço é 127.0.0.1.

Outro conjunto de endereços IP úteis são os reservados para redes privadas. Em uma intranet
ambiente, pode ser desejável configurar todas as máquinas com um endereço IP exclusivo, sem
expô-los à Internet pública. A Autoridade de número atribuído à Internet (IANA) tem
reservou três conjuntos de endereços para uso em um ambiente de intranet local, conforme
descrito em RFC 1918. Se você planeja configurar uma LAN própria, poderá obter endereços
desses intervalos sem se preocupar com um conflito de colisão com um host na Internet. Na
Internet, os roteadores não encaminhar dados para esses endereços, para que possam ser usados
com segurança localmente. Deve-se notar, no entanto, é o único momento em que os endereços
4
IP podem ser selecionados com segurança, a menos que você esteja alocado a um bloco de
endereços. A Tabela 2 mostra os intervalos de endereços IP das classes A a C.

Além dos endereços IP: O Sistema de Nomes de Domínio (DNS)


Embora os endereços IP constituam um sistema eficiente para administradores de rede, a maioria
das pessoas acha memorizá-los para ser uma tarefa impossível. As pessoas geralmente acham as
palavras muito mais fáceis de lembrar do que o formato decimal pontilhado de um endereço IP.
É mais fácil lembrar um nome como Amazon ou Dom do que um conjunto de números que
designam um endereço IP decimal pontilhado.

O que é um Nome de Domínio?


O sistema de nome de domínio (DNS) torna a Internet fácil de usar, associando um nome textual
com um endereço IP. Qualquer entidade, comercial, governamental ou privada, pode solicitar um
domínio nome, que pode ser usado por pessoas para localizar essa entidade na Internet. Nomes
de texto simples, como opostos a números arbitrários, são usados para identificação. Além disso,
as organizações podem alocar nomes de host próprios, como ftp.davidreilly.com e
www.davidreilly.com , sem ter que registrar todos os hosts com um corpo externo. Depois de ter
um nome de domínio, você pode controlar como é usado.
Tabela 2. Faixas de endereços das classes A, B e C para uso na intranet
Tipo Intervalo de endereços
Class A 10.0. 0.0 – 0.255.255.255
Class B 172.16.0.0 –172.31.255.255
Class C 192.168.0.0 –192.168.255.255

NOTA
Muitos registros realizam o serviço de registro de nomes de domínio, em variáveis
preços. O registrador original do nome de domínio, Network Solutions, está localizado
em http://www.networksolutions.com/ .

Como o Sistema de Nomes de Domínio funciona?


Dado o grande número de máquinas conectadas à Internet, o número de nomes de domínio para
IP o mapeamento de endereços é ótimo demais para qualquer sistema. Mesmo se houvesse um
tamanho suficiente sistema para armazenar todos esses mapeamentos, ele seria rapidamente
sobrecarregado por solicitações. Além disso, em No caso de uma falha do sistema, isolar o
problema em uma fração da Internet seria preferível a fazer com que todo o sistema pare de
tremer. Ironicamente, no entanto, quando o A Internet foi originalmente concebida,
mapeamentos de host para endereço IP foram armazenados em um único arquivo, chamado
hosts.txt, que foi baixado e espelhado na Internet. Este arquivo ainda existe em muitos sistemas
operacionais e pode ser usado para substituir os mapeamentos DNS ou encobrir os que estão
ausentes ou não resolvível pelos servidores DNS locais. Em alguns casos, eles podem ser usados

5
para encobrir não ter um servidor DNS local em uma intranet.

O DNS (descrito na RFC 1034/1035) é um sistema mais sofisticado e robusto. Pode ser pensado
como um banco de dados distribuído, no qual a responsabilidade de aceitar novos registros e
retornando os endereços dos registros existentes, está espalhado por muitos hosts diferentes.
Diferentes categorias, como comercial e educacional, são tratadas por diferentes servidores de
registro. Além disso, os registros internacionais lidam com seus próprios mapeamentos
(chamados cou try-code de nível superior domínios) e pode ser subdividido em outras categorias.
Isso forma uma estrutura hierárquica, um Um pequeno subconjunto é mostrado na Figura 3-2 .
Como o intervalo de categorias de endereços muda
rapidamente, apenas um pequeno número é mostrado.
Figura 2. Subconjunto da hierarquia DNS

Essa estrutura hierárquica é dividida pelo tipo de endereço (.net, .com, .gov, .edu, .mil, ou um
dos endereços mais recentes, como .info ou .biz) ou pelo país (.au, .uk, entre muitos outras). Por
exemplo, para acessar o site www.davidreilly.com , uma solicitação para resolver esse nome
seria enviado para o servidor DNS .com. Alguns países têm sua própria maneira de organizar o
DNS registros, por exemplo, como mostra a Figura 2, o Reino Unido (.uk) usa .co em vez de
.com.

Resolução de Nomes de Domínio


Quando os aplicativos de software precisam procurar um nome de host (como
ftp.davidreilly.com ), eles não entre em contato diretamente com o registro .com. O seu
administrador de rede, ou ISP, configura o seu sistema para acessar o servidor DNS do
aplicativo, que lida com o processo de pesquisa. Muitas vezes, porém, o servidor DNS nem
precisa enviar uma consulta, pois os mesmos sites serão solicitados (
por vários usuários ou um único). Isso funciona da mesma forma que um navegador da Web que
armazena em cache as páginas, e evita sobrecarga excessiva da rede.
Quando uma solicitação de nome de host (como www.aol.com ) é feita, o sistema operacional do
O computador cliente contata o servidor DNS local na LAN. É responsável por localizar o
servidor de domínio aol.com , e interrogando-lo para encontrar o endereço IP do nome do host
( www.aol.com ). Para fazer isso, ele deve consultar o servidor de domínio no nível "raiz", que se
refere ao servidor .com. Por fim, o endereço IP é retornado ao usuário (veja a Figura 3) .

6
Figura 3. A solicitação para www.aol.com atinge o servidor DNS da LAN e é resolvida.

Como pode ser visto no exemplo em Figura 4 , solicitações de DNS podem ser armazenadas em
cache. O servidor DNS LAN pode manter um cache de endereços solicitados recentemente, para
impedir a sobrecarga do domínios de nível. Além disso, isso melhora o desempenho da rede, pois
o atraso entre a solicitação um nome de domínio e recebendo uma resposta são diminuídos.

Figura 4. O servidor DNS retorna o endereço IP e armazena em cache a consulta de outro

7
Endereçamento da Internet com Java
Agora, deve ficar claro que um host na Internet pode ser representado em decimal pontilhado
formato como um endereço IP ou como um nome de host, como ftp.davidreilly.com . Em Java,
como endereços são representados pela classe java.net.InetAddress . Esta classe pode
preencher uma variedade de tarefas, desde a resolução de um endereço IP até a pesquisa do nome
do host. Na próxima seção, esse importante classe é examinada em detalhes.

A classe java.net.InetAddress
A classe InetAddress é usada para representar endereços IP em um aplicativo de rede Java.
Diferentemente da maioria das outras classes, não há construtores públicos para o InetAddress .
Em vez de, Existem dois métodos estáticos que retornam instâncias InetAddress . Aqueles e os
outros principais métodos desta classe são abordados na lista abaixo; todos são públicos, salvo
indicação em contrário.
 boolean equals (Object obj) - compara dois endereços IP e retorna "true" se
há uma partida. Observe, no entanto, que algumas máquinas podem ser conhecidas por
vários endereços IP. endereços, portanto, este não é um teste absoluto de igualdade; o que
é testado é apenas que os dois endereços são iguais, não que sejam a mesma máquina.
 byte [] getAddress () - retorna o endereço IP no formato de byte (ao contrário de
pontos

8
notação decimal). Os bytes são retornados na ordem de bytes da rede, com o byte mais
alto como bytearray [0] .
 static InetAddress[] getAllByName (String hostname) lança
java.net.UnknownHostException, java.lang.SecurityException – retorna, como
método estático, uma matriz de instâncias InetAddress representando o nome do host
especificado. Embora a maioria das máquinas tenha um único endereço IP, existem
algumas situações em que um nome de host pode ser mapeado para muitas máquinas e/ou
um nome de host pode mapear para muitos endereços em uma máquina (endereços
virtuais). Se o host não puder ser resolvido ou se a solução do host entrar em conflito com
o gerenciador de segurança, uma exceção será jogado.
 static InetAddress getByName ( String hostname ) lança
java.net.UnknownHostException, java.lang.SecurityException - retorna um
Instância InetAddress representando o nome do host especificado, que pode ser
representado como um nome de host de texto (por exemplo, davidreilly.com) ou como
um endereço IP em pontos formato decimal. Se o host não puder ser resolvido ou a
resolução do host entrar em conflito com o gerente de segurança, uma exceção será
lançada.
 String getHostAddress () - retorna o endereço IP do InetAddress em pontos
formato decimal.
 static InetAddress getLocalHost() lança java.net.UnknownHostException,
java.lang.SecurityException - retorna, como um método estático, o Endereço IP da
máquina local. Se o endereço IP não puder ser determinado, ou ao fazê-lo entrar em
conflito com o gerenciador de segurança, uma exceção será lançada.
 String getHostName() lança java.lang.SecurityManager - retorna o nome do host
do InetAddress .
 boolean isMulticastAddress() - retorna "true" se o InetAddress for um endereço
multicast, também conhecido como endereço de classe D.
 String toString() - retorna uma representação de string do InetAddress . Leitores
é recomendável usar os métodos getHostName () e getHostAddress () , para
controlar qual tipo de dados está sendo solicitado.

Usando o InetAddress para determinar o endereço do host local


O primeiro e mais simples exemplo de InetAddress é descobrir o endereço IP do atual
máquina. Se existir uma conexão direta com a Internet, um resultado significativo será obtido,
masusuários dial-up e aqueles sem conexão com a Internet (como em um ambiente de intranet)
podem
obtenha o endereço de loopback de 127.0.0.1. O pequeno exemplo de programa dado abaixo
mostra como é possível determinar o endereço.

import java.net.*;
// Chapter 3, Listing 2
public class NetworkResolverDemo

9
{
public static void main(String args[])
{
if (args.length != 1)
{
System.err.println ("Syntax -
NetworkResolverDemo host");
System.exit(0);
}
System.out.println ("Resolving " + args[0]);
try
{
// Resolve host and get InetAddress
InetAddress addr = InetAddress.getByName
( args[0] );
System.out.println ("IP address : " + addr.getHostAddress() );
System.out.println ("Hostname : " + addr.getHostName() );
}
catch (UnknownHostException uhe)
{
System.out.println ("Error - unable to resolve
hostname" );
}
}
}

Como LocalHostDemo funciona

O aplicativo LocalHostDemo inicia solicitando ao usuário que uma pesquisa de endereço IP será
realizado (isso é importante se houver algum atraso na determinação do endereço IP). A
operação na rede deve estar dentro de um bloco try / catch, porque é possível que nenhum
endereço IP seja encontrado e uma exceção será lançada. Usando o método estático
InetAddress.getLocalHost () , obtemos um objeto que representa um endereço IP. Mostrar
o endereço em notação decimal pontilhada, o método InetAddress.getHostAddress () é
usado.

Executando LocalHostDemo
Este aplicativo não requer parâmetros de linha de comando. A execução exibirá informações
sobre a máquina host. Para executar, digite:
Java LocalHostDemo

Usando o InetAddress para descobrir outros endereços


O exemplo anterior familiarizou você com a classe InetAddress . Abaixo está um mais
complexo exemplo, que resolve nomes de host para endereços IP e tenta executar uma pesquisa
inversa do endereço IP.
10
Código para NetworkResolverDemo

import java.net.*;
// Chapter 3, Listing 2
public class NetworkResolverDemo
{
public static void main(String args[])
{
if (args.length != 1)
{
System.err.println ("Syntax -
NetworkResolverDemo host");
System.exit(0);
}
System.out.println ("Resolving " + args[0]);
try
{
// Resolve host and get InetAddress
InetAddress addr = InetAddress.getByName
( args[0] );
System.out.println ("IP address : " + addr.getHostAddress() );
System.out.println ("Hostname : " + addr.getHostName() );
}
catch (UnknownHostException uhe)
{
System.out.println ("Error - unable to resolve
hostname" );
}
}
}

Como NetworkResolverDemoWorks
No exemplo anterior, usamos um método estático de InetAddress para retornar o endereço
local. Geralmente, no entanto, trabalharemos com outros sistemas na rede, portanto, precisamos
Aprenda a usar o InetAddress para resolver seus nomes de host e obter um endereço IP. Nisso
Por exemplo, usamos o método estático InetAddress.getByName () para retornar um
InetAddress instância. Em seguida, exibimos o endereço IP e o nome do host, usando os
mesmos métodos em LocalHostDemo .

Executando NetworkResolverDemo
Este aplicativo requer como parâmetro um nome de host ou um endereço IP. Para executar,
digite:
java NetworkResolverDemo hostname

11
Outros tipos de endereços em Java
Existem outros tipos de endereços de rede representados em Java, como URLs e endereços
remotos. referências a objetos. Para evitar confusão, a discussão destes será reservada para os
próximos capítulos.

12
Conclusão

O grupo concluiu que é de extrema importância que se conheçam os aspetos que regem as redes
como endereçamento local de rede; endereçamento de protocolo de internet; endereçamento de
internet com java; para que tenhamos sucesso no desenvolvimento de aplicativos java que usem
os princípios de redes e quando se programa as próprias redes. Pois tem se de certificar que os
pacotes trafegam como devem na rede e perceber como esse mesmo trafego acontece.

13
Referencias
REILLY, David, REILLY, Michael - Java Network Programming and Distributed Computing
2002
HAROLD, Elliotte Rusty – Java Network Programming 4th ed

14

Você também pode gostar