Prévia do material em texto
ARQUITETURA E PROTCOLOS TCP/IP
1 WWW.DOMINACONCURSOS.COM.BR
Arquitetura e Protocolos TCP/IP
O conjunto de protocolos TCP/IP foi projetado especialmente para ser o protocolo utilizado na Inter-
net. Sua característica principal é o suporte direto a comunicação entre redes de diversos tipos. Neste
caso, a arquitetura TCP/IP é independente da infra-estrutura de rede física ou lógica empregada. De
fato, qualquer tecnologia de rede pode ser empregada como meio de transporte dos protocolos
TCP/IP, como será visto adiante.
Endereçamento IP
Existem duas versões dos protocolos IP: IPV4 e IPV6. A primeira é utilizada atualmente e está se es-
gotando devido a quantidade devido ao número de máquinas conectadas na Internet utilizando-o. Já
o IPV6 está vindo para solucionar esse problema de escassez, sendo uma versão melhorada.
IPV4
Os endereços IP são compostos por 4 blocos de 8 bits (32 bits), sendo representados de 0 a 255,
ou seja, as 256 possibilidades dos 8 bits. Cada bloco é chamado de “octeto”. A sua utilização em
“octetos” é apenas para facilitar a visualização, mas quando processados, são apenas números biná-
rios. Total de endereços IP é de 4.294.967.296.
Existem algumas faixas de IP que são reservadas para redes locais, que são as que iniciam da se-
guinte forma:
10.x.x.x
192.168.x.x
172.16.x.x até 172.31.x.x
O endereço IP é formado por duas informações principais: o endereço de rede e o endereço de host
dentro da rede. Veja o exemplo do IP “10.0.0.4”, onde o primeiro octeto, o “10”, é o endereço de
rede, já o segundo até o quarto octeto “0.0.4” é o endereço de host. Outro exemplo seria o IP
“172.22.45.23”, onde “172.22” é o endereço de rede e “45.23” é o endereço de host.
Existe também algumas regras quanto a validade de um IP, sendo os listados abaixo como inválidos:
0.xxx.xxx.xxx – Nenhum IP pode começar com zero. Somente utilizado é para responder às requisi-
ções DHCP de uma máquina que entrou na rede;
127.xxx.xxx.xxx – Chamado de “loopback”. Seria o endereço reservado para testes e para interface
chamada de “loopback”, ou seja, a própria máquina.
ARQUITETURA E PROTCOLOS TCP/IP
2 WWW.DOMINACONCURSOS.COM.BR
255.xxx.xxx.xxx, xxx.255.255.255, xxx.xxx.255.255 – Nenhum identificador de rede pode ser 255 e
nenhum endereço de host pode ser composto apenas de endereços 255, independente de classe do
endereço.
xxx.0.0.0, xxx.xxx.0.0 – Nenhum identificador de host pode ser composto apenas de zeros, pois são
endereços reservados da rede.
xxx.xxx.xxx.255, xxx.xxx.xxx.0 – Nenhum endereço de classe C pode terminar com 0 ou 255, pois
são utilizados para envio de pacotes broadcast.
Classes de Endereçamento IP
Inicialmente os endereços IP foram divididos em classes que reservam um número diferente de octe-
tos para o endereçamento da rede, sendo elas chamadas de A, B, C, D e E. Dentre elas, apenas as
classes A B e C são utilizadas realmente, pois a D e E são para utilização futura. Veja abaixo a sepa-
ração das classes:
Classe A:
Com tamanho de 8 bits no endereço de rede;
Tamanho de 24 bits para endereços de hosts;
O primeiro octeto decimal entre 1 e 126;
Utiliza máscara de rede 255.0.0.0;
Total de redes de 27-2 = 126;
Total de hosts de 224-2 = 16.777.214;
Classe B:
Com tamanho de 16 bits no endereço de rede;
Tamanho de 16 bits para endereços de hosts;
O primeiro octeto decimal entre 128 e 191;
Utiliza máscara de rede 255.255.0.0;
Total de redes de 214-2 = 16.380;
Total de hosts de 216-2 = 65.532;
Classe C:
Com tamanho de 24 bits no endereço de rede;
Tamanho de 8 bits para endereços de hosts;
O primeiro octeto decimal entre 192 e 223;
Utiliza máscara de rede 255.255.255.0;
Total de redes de 221-2 = 2.097.150;
Total de hosts de 28-2 = 254;
Classe D:
Reservado para multicasting;
Sendo o primeiro octeto decimal entre 224 e 239;
ARQUITETURA E PROTCOLOS TCP/IP
3 WWW.DOMINACONCURSOS.COM.BR
Classe E:
Reservado para pesquisas;
Sendo o primeiro octeto decimal entre 240 e 247;
IPV6
Como já falei anteriormente, o IPV6 veio para resolver o problema da escassez de endereços IP do
IPV4.
Os endereços IP são compostos por 8 blocos de 4 caracteres do sistema hexadecimal em cada
bloco, ou seja, 16 caracteres, totalizando 128 bits, sendo representados de 0 à F, ou seja, as 16
possibilidades para cada caractere. Cada bloco é chamado de “octeto”. A sua utilização em “octe-
tos” é apenas para facilitar a visualização, mas quando processados, são apenas números binários.
Total de endereços IP é de 340.282.366.920.938.463.463.374.607.431.768.211.456.
Algumas outras características:
Autoconfiguração do endereço, não sendo mais necessário o uso do DHCP;
Endereçamento hierárquico, o que simplifica as tabelas de encaminhamento das tabelas dos roteado-
res da rede, o que diminui a carga de processamento deles;
O cabeçalho foi totalmente remodelado;
Cabeçalhos de extensão para guardar detalhes adicionais;
Suporte a qualidade diferenciada para conexões diferenciadas para áudio e vídeo;
Capacidade de extensão, podendo adicionar novas especificações de forma simples;
Encriptação. Suporte a extensões que permitem opções de segurança.
Um detalhe curioso sobre o endereçamento no IPV6 é a sua capacidade de ser encurtado. Veja o se-
guinte exemplo de endereço: 2001:247f:0000:0000:cd89:d4e2:bcd7:a36e. Onde tem os blocos com
0000, podemos simplesmente substituir por um único zero, fi-
cando 2001:247f:0:0:cd89:d4e2:bcd7:a36e ou até mesmo 2001:247f::cd89:d4e2:bcd7:a36e
Pode-se ainda:
Utilizar letras minúsculas e maiúsculas;
Utilizar as regras de abreviação, como omitir zeros à esquerda e representar zeros contínuos por “::“
Tipos de endereços
Unicast – O endereço identifica apenas uma interface de rede. Desse modo, um pacote enviado a
um endereço unicast é entregue a uma única interface. Cada endereço IPv4 unicast inclui uma ID de
rede e uma ID de host.
Multicast – Multicast é a entrega de informação para múltiplos destinatários simultaneamente usando
a estratégia mais eficiente onde as mensagens só passam por um link uma única vez e somente são
duplicadas quando o link para os destinatários se divide em duas direções.
ARQUITETURA E PROTCOLOS TCP/IP
4 WWW.DOMINACONCURSOS.COM.BR
Anycast – Um pacote destinado a um endereço multicast é enviado para todas as interfaces do
grupo, mas somente um deles é escolhido.
Há também uma uma associação entre endereços de rede e endpoints de rede: cada endereço de
destino identifica um jogo de endpoints do receptor, mas somente um deles é escolhido em todo o
tempo dado para receber a informação de qualquer remetente dado.
Broadcast – Permite que a informação seja enviada para todas as maquinas de
uma LAN, MAN, WAN e TANS, redes de computadores e sub-redes.
Camadas TCP/IP
TCP/IP é um acrônimo para o termo Transmission Control Protocol/Internet Protocol Suite, ou seja, é
um conjunto de protocolos, onde dois dos mais importantes (o IP e o TCP) deram seus nomes à ar-
quitetura. O protocolo IP, base da estrutura de comunicação da Internet é um protocolo baseado no
paradigma de chaveamento de pacotes (packet-switching).
Os protocolos TCP/IP podem ser utilizados sobre qualquer estrutura de rede, seja ela simples como
uma ligação ponto-a-ponto ou uma rede de pacotes complexa.
Como exemplo, pode-se empregar estruturas de rede como Ethernet, Token-Ring, FDDI, PPP, ATM,
X.25, Frame-Relay, barramentos SCSI, enlaces de satélite, ligações telefônicas discadas e várias ou-
tras como meio de comunicação do protocolo TCP/IP.
A arquitetura TCP/IP, assim como OSI realiza a divisão de funções do sistema de comunicação em
estruturas de camadas. Em TCP/IP as camadas são:
ARQUITETURA E PROTCOLOS TCP/IP
5 WWW.DOMINACONCURSOS.COM.BR
Aplicação
Transporte
Inter-Rede
Rede
Vamos analisar cada uma das camadas da Arquitetura TCP/IP e vamos falar sobre os protocolos que
são utilizados em cada uma delas.Camada Física / Enlace / Host / Rede
A camada de rede é responsável pelo envio de datagramas construídos pela camada Inter-Rede.
Esta camada realiza também o mapeamento entre um endereço de identificação de nível Inter-rede
para um endereço físico ou lógico do nível de Rede. A camada Inter-Rede é independente do nível de
Rede.
Também chamada camada de abstração de hardware, tem como função principal à interface do mo-
delo TCP/IP com os diversos tipos de redes (X.25, ATM, FDDI, Ethernet, Token Ring, Frame Relay,
sistema de conexão ponto-a-ponto SLIP, etc.). Como há uma grande variedade de tecnologias de
rede, que utilizam diferentes velocidades, protocolos, meia transmissão, etc. esta camada não é nor-
matizada pelo modelo, o que provê uma das grandes virtudes do modelo TCP/IP: a possibilidade de
interconexão e interoperação de redes heterogêneas.
Os protocolos existentes nesta camada são:
- Protocolos com estrutura de rede própria (X.25, Frame-Relay, ATM)
- Protocolos de Enlace OSI (PPP, Ethernet, Token-Ring, FDDI, HDLC, SLIP, …)
- Protocolos de Nível Físico (V.24, X.21)
- Protocolos de barramento de alta-velocidade (SCSI, HIPPI, …)
Protocolos de mapeamento de endereços (ARP – Address Resolution Protocol) – Este protocolo pode
ser considerado também como parte da camada Inter-Rede.
2-Camada de Rede / Inter-Rede / Internet
Esta camada realiza a comunicação entre máquinas vizinhas através do protocolo IP. Para identificar
cada máquina e a própria rede onde estas estão situadas, é definido um identificador, chamado ende-
reço IP, que é independente de outras formas de endereçamento que possam existir nos níveis inferi-
ores. No caso de existir endereçamento nos níveis inferiores é realizado um mapeamento para possi-
bilitar a conversão de um endereço IP em um endereço deste nível.
Os protocolos existentes nesta camada são:
- Protocolo de transporte de dados: IP – Internet Protocol;
ARQUITETURA E PROTCOLOS TCP/IP
6 WWW.DOMINACONCURSOS.COM.BR
- Protocolo de controle e erro: ICMP – Internet Control Message Protocol;
- Protocolo de controle de grupo de endereços: IGMP – Internet Group Management Protocol;
- Protocolos de controle de informações de roteamento como BGP, OSPF e o RIP;
Protocolo ARP “Address Resolution Protocol” – Permite certo computador se comunicar com outro
computador em rede quando somente o endereço de IP é conhecido pelo destinatário.
Protocolo RARP “Reverse Address Resolution Protocol” – Faz o contrário do protocolo ARP, ao invés
de obter o endereço MAC da máquina, o protocolo RARP requisita o endereço de IP.
O protocolo IP realiza a função mais importante desta camada que é a própria comunicação inter-re-
des. Para isto ele realiza a função de roteamento que consiste no transporte de mensagens entre
redes e na decisão de qual rota uma mensagem deve seguir através da estrutura de rede para che-
gar ao destino.
O protocolo IP utiliza a própria estrutura de rede dos níveis inferiores para entregar uma mensagem
destinada a uma máquina que está situada na mesma rede que a máquina origem. Por outro lado,
para enviar mensagem para máquinas situadas em redes distintas, ele utiliza a função de roteamento
IP. Isto ocorre através do envio da mensagem para uma máquina que executa a função de roteador.
Esta, por sua vez, repassa a mensagem para o destino ou a repassa para outros roteadores até che-
gar no destino.
3-Camada de Transporte
Esta camada reúne os protocolos que realizam as funções de transporte de dados fim-a-fim, ou seja,
considerando apenas a origem e o destino da comunicação, sem se preocupar com os elementos in-
termediários. A camada de transporte possui dois protocolos que são o UDP (User Datagram Proto-
col) e TCP (Transmission Control Protocol).
O protocolo UDP realiza apenas a multiplexação para que várias aplicações possam acessar o sis-
tema de comunicação de forma coerente.
O protocolo TCP realiza, além da multiplexação, uma série de funções para tornar a comunicação en-
tre origem e destino mais confiável. São responsabilidades do protocolo TCP: o controle de fluxo, o
controle de erro (checksum), a sequenciação e a multiplexação de mensagens.
A camada de transporte oferece para o nível de aplicação um conjunto de funções e procedimentos
para acesso ao sistema de comunicação de modo a permitir a criação e a utilização de aplicações de
forma independente da implementação. Desta forma, as interfaces socket ou TLI (ambiente Unix) e
Winsock (ambiente Windows) fornecem um conjunto de funções-padrão para permitir que as aplica-
ções possam ser desenvolvidas independentemente do sistema operacional no qual rodarão.
4-Camada de Aplicação / Apresentação / Sessão
A camada de aplicação reúne os protocolos que fornecem serviços de comunicação ao sistema ou ao
usuário. Pode-se separar os protocolos de aplicação em protocolos de serviços básicos ou protocolos
de serviços para o usuário:
Protocolos de serviços básicos, que fornecem serviços para atender as próprias necessidades do sis-
tema de comunicação TCP/IP: DNS, BOOTP, DHCP
Protocolos de serviços para o usuário: FTP, HTTP, Telnet, SMTP, POP3, IMAP, TFTP, NFS, NIS,
LPR, LPD, ICQ, RealAudio, Gopher, Archie, Finger, SNMP e outros
Tabelas de Roteamento
Quando um pacote chega em uma das interfaces do roteador, ele analisa a sua tabela de rotea-
mento, para verificar se contém uma rota para a rede de destino. Pode ser uma rota direta ou então
para qual roteador o pacote deve ser enviado. Este processo continua até que o pacote seja entregue
na rede de destino, ou até que o limite de 16 hopes tenha sido atingido.
ARQUITETURA E PROTCOLOS TCP/IP
7 WWW.DOMINACONCURSOS.COM.BR
Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:
Cada linha é uma entrada da tabela. Por exemplo, a linha a seguir é que define o Default Gateway da
ser utilizado:
200.175.106.54 200.175.106.54 1
Neste tópico você aprenderá sobre os campos que compõem uma entrada da tabela de roteamento e
o significado de cada campo. Também aprenderá a interpretar a tabela de roteamento que existe em
um computador com o Windows 2000, Windows XP ou Windows Server 2003.
Entenda os campos que compõem as entradas de uma tabela de roteamento:
Uma entrada da tabela de roteamento possui os campos indicados no esquema a seguir e explicados
logo em seguida:
Network ID: Este é o endereço de destino. Pode ser o endereço de uma rede (por exemplo: 10.10.
10.0), o endereço de um equipamento da rede, o endereço de uma sub-rede (veja detalhes sobre
sub-rede mais adiante) ou o endereço da rota padrão (0.0.0.0).
A rota padrão significa: "a rota que será utilizada, caso não tenha sido encontrada uma rota específica
para o destino". Por exemplo, se for definida que a rota padrão deve ser envida pela interface com IP
10.10.5.2 de um determinado roteador, sempre que chegar um pacote, para o qual não existe uma
rota específica para o destino do pacote, este será enviado pela roda padrão, que no exemplo seria a
interface 10.10.5.2. Falando de um jeito mais simples: Se não souber para onde mandar, manda para
a rota padrão.
Network Mask: A máscara de sub-rede utilizada para a rede de destino.
Next Hop: Endereço IP da interface para a qual o pacote deve ser enviado. Considere o exemplo a
seguir, como sendo uma entrada de um roteador, com uma interface de WAN configurada com o IP
número 10.200.200.4:
ARQUITETURA E PROTCOLOS TCP/IP
8 WWW.DOMINACONCURSOS.COM.BR
Esta entrada indica que pacotes enviados para a rede definida pelos parâmetros 10.100.100.0/255.
255.255.0, deve ser enviada para o gateway 10.200.200.1 e para chegar a este gateway, os pacotes
de informação devem ser enviados pela interface 10.200.200.120.
Neste exemplo, está entrada está contida na tabela interna de roteamento de um computador com o
Windows Server 2003, cujo número IP é 10.200.200.120 e o default gateway configurado é
10.200.200.1.
Neste caso, quandoeste computador quiser se comunicar com um computador da rede 10.100.100.0,
será usada a entrada de roteamento descrita neste item. Nesta entrada está especificado que paco-
tes para a rede 10.100.100.0, com máscara 255.255.255.0, devem ser enviados para o default gate-
way 10.200.200.1 e que este envio deve ser feito através da interface de rede 10.200.200.120, que
no nosso exemplo é a placa de rede do computador.
Uma vez que o pacote chegou no default gateway (na interface de LAN do roteador), o processo de
roteamento, até a rede de destino (rede 10.100.100.0) é o processo descrito nas análises anteriores.
Interface: É a interface através da qual o pacote deve ser enviado. Por exemplo, se você estiver anali-
sando a tabela de roteamento interna, de um computador com o Windows Server 2003, o número IP
do campo interface, será sempre o número IP da placa de rede, a não ser que você tenha mais de
uma placa de rede instalada.
Metric: A métrica é um indicativo da distância da rota, entre destino e origem, em termos de hopes.
Conforme descrito anteriormente, pode haver mais de um roteador entre origem e destino. Também
pode haver mais de um caminho entre origem e destino.
Se for encontrada duas rotas para um mesmo destino, o roteamento será feito pela rota de menor va-
lor no campo Metric. Um valor menor indica, normalmente, um número menor de hopes (roteadores)
entre origem e destino.
Analisando a tabela de roteamento de um computador com o Windows (2000, 2003 ou XP):
Agora que você já conhece os conceitos de tabelas de roteamento e também conhece os campos
que formam uma entrada em uma tabela de roteamento, é hora de analisar as entradas de uma ta-
bela de roteamento em um computador com o Windows Server 2003 instalado.
No Windows Server 2003, o protocolo TCP/IP é instalado automaticamente e não pode ser desinsta-
lado (esta é uma das novidades do Windows Server 2003).
Ao instalar e configurar o protocolo TCP/IP, o Windows Server 2003 cria, na memória do servidor,
uma tabela de roteamento.
Esta tabela é criada, dinamicamente, toda vez que o servidor é inicializado. Ao desligar o servidor o
conteúdo desta tabela será descartado, para ser novamente recriado durante a próxima inicialização.
A tabela de roteamento é criada com base nas configurações do protocolo TCP/IP.
Existem também a possibilidade de adicionar entradas estáticas. Uma entrada estática fica gravada
em disco e será adicionada a tabela de roteamento durante a inicialização do sistema.
Ou seja, além das entradas criadas automaticamente, com base nas configurações do TCP/IP, tam-
bém podem ser acrescentadas rotas estáticas, criadas com o comando route, o qual descreverei mais
adiante.
Para exibir a tabela de roteamento de um computador com o Windows Server 2003 (ou com o Win-
dows 2000, ou Windows XP), abra um Prompt de comando, digite o comando indicado a seguir e
pressione Enter:
Route Print
Será exibida uma tabela de roteamento, semelhante a indicada na Figura a seguir, onde é exibida a
tabela de roteamento para um servidor com o número IP: 10.204.200.50:
ARQUITETURA E PROTCOLOS TCP/IP
9 WWW.DOMINACONCURSOS.COM.BR
Vamos analisar cada uma destas entradas e explicar a função de cada entrada, para que você possa
entender melhor os conceitos de roteamento. Rota padrão:
Esta rota é indicada por uma identificação de rede 0.0.0.0 com uma máscara de sub-rede 0.0.0.0.
Quando o TCP/IP tenta encontrar uma rota para um determinado destino, ele percorre todas as entra-
das da tabela de roteamento em busca de uma rota específica para a rede de destino. Caso não seja
encontrada uma rota para a rede de destino, será utilizada a rota padrão.
Em outras palavras, se não houver uma rota específica, mande para a rota padrão. Observe que a
rota padrão é justamente o default gateway da rede (10.204.200.1), ou seja, a interface de LAN do
roteador da rede.
O parâmetro Interface (10.204.200.50) é o número IP da placa de rede do próprio servidor. Em outras
palavras: Se não houver uma rota específica manda para a rota padrão, onde o próximo hope da rede
é o 10.204.200.1 e o envio para este hope é feito através da interface 10.204.200.50 (ou seja, a pró-
prio placa de rede do servidor).
Endereço da rede local:
Esta rota é conhecida como Rota da Rede Local. Ele basicamente diz o seguinte: "Quando o ende-
reço IP de destino for um endereço da minha rede local, envia as informações através da minha placa
de rede através da minha placa de rede (observe que tanto o parâmetro Gateway como o parâmetro
Interface estão configurados com o número IP do próprio servidor). Ou seja, se for para uma das má-
quinas da minha rede local, manda através da placa de rede, não precisa enviar para o roteador.
Local host (endereço local):
Este endereço faz referência ao próprio computador. Observe que 10.204.200.50 é o número IP do
servidor que está sendo analisado (no qual executei o comando route print). Esta rota diz que os pro-
gramas do próprio computador, que enviarem pacotes para o destino 10.204.200.50 (ou seja, envia-
rem pacotes para si mesmo, como no exemplo de dois serviços trocando informações entre si), de-
vem usar como Gateway o endereço de loopback 127.0.0.1, através da interface de loopback
127.0.0.1. Esta rota é utilizada para agilizar as comunicações que ocorrem entre os componentes do
ARQUITETURA E PROTCOLOS TCP/IP
10 WWW.DOMINACONCURSOS.COM.BR
próprio Windows Server 2003, dentro do mesmo servidor. Ao usar a interface de loopback, toda a co-
municação ocorre a nível de software, ou seja, não é necessário enviar o pacote através das diversas
camadas do protocolo TCP/IP, até que o pacote chege na camada de enlace (ou seja, a placa de
rede), para depois voltar.
Ao invés disso é utilizada a interface de loopback para direcionar os pacotes corretamente. Observe
que esta entrada tem como máscara de sub-rede o número 255.255.255.255. Esta máscara indica
que a entrada é uma rota para um endereço IP específico (no caso o próprio IP do servidor) e não
uma rota para um endereço de rede.
Network broadcast (Broadcast de rede):
Esta rota define o endereço de broadcast da rede. Broadcast significa enviar para todos os computa-
dores da rede. Quando é utilizado o endereço de broadcast, todos os computadores da rede recebem
o pacote e processam o pacote.
O broadcast é utilizado por uma série de serviços, como por exemplo o WINS, para fazer verificações
periódicas de nomes, para enviar uma mensagem para todos os computadores da rede, para obter
informações de todos os computadores e assim por diante.
Observe que o gateway é o número IP da placa de rede do servidor e a Interface é este mesmo nú-
mero, ou seja, para enviar um broadcast para a rede, envie através da placa de rede do servidor, não
há necessidade de utilizar o roteador. Um detalhe interessante é que, por padrão, a maioria dos rote-
adores bloqueia o tráfego de broadcast, para evitar congestionamentos nos links de WAN.
Rede/endereço de loopback:
Comentei anteriormente que os endereços da rede 127.0.0.0 são endereços especiais, reservados
para fazer referência a si mesmo. Ou seja, quando faço uma referência a 127.0.0.1 estou me refe-
rindo ao servidor no qual estou trabalhando. Esta roda indica, em palavras simples, que para se co-
municar com a rede de loopback (127.0.0.0/255.0.0.0), utilize "eu mesmo" (127.0.0.1).
Multicast address (endereço de Multicast):
O tráfego IP, de uma maneira simples, pode ser de três tipos: Unicast é o tráfego direcionado para
um número IP definido, ou seja, com um destinatário. Broadcast é o tráfego dirigido para todos os
computadores de uma ou mais redes.
E tráfego Multicast é um tráfego direcionado para um grupo de computadores, os quais estão configu-
rados e "inscritos" para receber o tráfego multicast.
Um exemplo prático de utilização do multicast é para uma transmissão de vídeo através da rede. Va-
mos supor que de uma rede de 1000computadores, apenas 30 devem receber um determinado ar-
quivo de vídeo com um treinamento específico.
Se for usado tráfego unicast, serão transmitidas 30 cópias do arquivo de vídeo (o qual já é um arquivo
grande), uma cópia para cada destinatário. Com o uso do Multicast, uma única cópia é transmitida
através do link de WAN e o tráfego multicast (com base no protocolo IGMP), entrega uma cópia do
arquivo apenas para os 30 computadores devidamente configurados para receber o tráfego multicast.
Esta rota define que o tráfego multicast deve ser enviado através da interface de rede, que é o nú-
mero IP da placa de rede do servidor.Lembrando do Capítulo 2, quando falei sobre classes de ende-
reços, a classe D é reservada para tráfego multicast, com IPs iniciando (o primeiro número) a partir de
224.
ARQUITETURA E PROTCOLOS TCP/IP
11 WWW.DOMINACONCURSOS.COM.BR
Limited Broadcast (Broadcast Limitado):
Esta é a rota utilizada para o envio de broadcast limitado. O endereço de broadcast limitado é formato
por todos os 32 bits do endereço IP sendo iguais a 1 (255.255.255.255). Este endereço é utilizado
quando o computador tem que fazer o envio de um broadcast na rede local (envio do tipo um para to-
dos na rede), porém o computador não conhece a número da rede local (network ID).
Você pode perguntar: Mas em que situação o computador não conhecerá a identificação da rede lo-
cal? Por exemplo, quando você inicializa um computador, configurado para obter as configurações do
TCP/IP a partir de um servidor DHCP, a primeira coisa que este computador precisa fazer é localizar
um servidor DHCP na rede e requisitar as configurações do TCP/IP. Ou seja, antes de receber as
configurações do DHCP, o computador ainda não tem endereço IP e nem máscara de sub-rede, mas
tem que se comunicar com um servidor DHCP.
Esta comunicação é feita via broadcast limitado, onde o computador envia um pacote de formato es-
pecífico (chamado de DHCP Discover), para tentar descobrir um servidor DHCP na rede. Este pacote
é enviado para todos os computadores. Aquele que for um servidor DHCP irá responder a requisição
do cliente. Aí o processo de configuração do DHCP continua (conforme descreverei na seção sobre
DHCP), até que o computador esteja com as configurações do TCP/IP definidas, configurações estas
obtidas a partir do servidor DHCP.
Sub-Redes e Super-Redes IPv4
Inicialmente o espaço de endereçamento era largamente superior a qualquer tipo de necessidade em
qualquer instituição isoladamente.
À medida que as várias redes IPv4 foram interligadas, vindo a formar o que hoje é conhecido por "in-
ternet", começou a avolumar-se um grave problema porque todos os endereços tinham de ser únicos.
O espaço de endereçamento começou a não ser suficiente para as crescentes necessidades.
Para além do espaço de endereçamento limitado (32 bits), as regras de endereçamento que dividem
as redes em classes revelaram-se também muito restritivas, levando ao "desperdicio" de muitos en-
dereços, pois o aproveitamento de cada rede apenas se verifica para um número exacto de nós, que
raramente corresponde às situações concretas.
Para resolver este problema começou mais tarde o desenvolvimento do IPv6, com endereços de 128
bits. O desenvolvimento do IPv6 foi algo demorado e tiveram de ser encontradas soluções mais expe-
ditas para manter o IPv4 no activo, elas são fundamentalmente duas:
Sub-redes e Super-redes - Trata-se de reduzir ou eliminar o referido desperdicio de endereços devido
à divisão em classes.
Tradução de endereços (NAT) - esta técnica permite ligar uma rede IP à "internet" usando um único
endereço oficial, em lugar de um endereço para cada nó no interior dessa rede.
Apesar de estas soluções serem consideradas temporárias, resolveram de forma muito eficiênte o
problema da escasses de endereços do IPv4 e acabaram por retardar a adopção do IPv6, que ainda
não é muito usado.
Sub-Redes e Super-Redes
Trata-se de uma mesma técnica que consiste na manipulação da máscara de rede, inicialmente as
máscaras de rede possuiam apenas três valores possíveis correspondentes às três classe de rede:
FF.00.00.00 (11111111.00000000.00000000.00000000) - classe A
FF.FF.00.00 (11111111.11111111.00000000.00000000) - classe B
FF.FF.FF.00 (11111111.11111111.11111111.00000000) - classe C
ARQUITETURA E PROTCOLOS TCP/IP
12 WWW.DOMINACONCURSOS.COM.BR
Note-se ainda que estas máscaras de rede estão implicitamente associadas aos endereços porque
os dois primeiros bits do endereço identificam a classe.
0?????(...) - classe A (FF.00.00.00)
10????(...) - classe B (FF.FF.00.00)
11????(...) - classe C (FF.FF.FF.00)
A manipulação da máscara de rede consiste no avanço ou recuo da máscara, no primeiro caso criam-
se sub-redes, no segundo caso criam-se super-redes.
Divisão em sub-redes
O avanço da máscara consiste em activar bits (passar ao valor 1) imediatamente à direita dos bits
que estão activos na máscara "normal". Isso significa que o número de bits usados para identificar os
nós em cada rede diminui, teremos então redes mais pequenas, mas por outro lado teremos mais bits
para identificar a rede, o que significa que teremos mais redes (sub-redes).
Agrupamento em super-redes
O recuo da máscara consiste em desactivar bits (passar ao valor 0) imediatamente à esquerda dos
bits que estão inactivos na máscara "normal". Isso significa que o número de bits usados para identifi-
car os nós em cada rede aumenta, teremos então uma rede de maior dimensão (super-rede), mas
por outro lado teremos menos bits para identificar a rede, o que significa que teremos menos redes.
SIMULADOR DE MASCARAS DE REDE IPv4
(JavaScript)
Cuidados na manipulação da máscara de rede
A manipulação da máscara de rede tem um impacto enorme sobre o aproveitamento dos endereços,
um dos exemplos mais evidente é a interligação de nós intermédios através de ligações dedicadas:
Tratando-se de nós IP é necessário definir uma rede IP sobre a ligação dedicada, sem criar sub-re-
des, a única solução era atribuir a essa ligação uma rede de classe C. Isso constituia um despedicio
enorme de endereços, já que dos 254 endereços de nó de uma rede de classe C, apenas eram usa-
dos 2.
Usando sub-redes podemos avançar a máscara até que apenas fiquem 2 bits com o valor 0 (mascara
FF.FF.FF.FC), nestas condições, uma única rede de classe C permite criar 64 sub-redes com capaci-
dade para dois nós cada.
O exemplo apresentado ilustra também outro facto, em termos teóricos a divisão em sub-redes con-
duz a um desperdicio de endereços, dos 254 nós de uma rede de classe C passamos a ter 64 redes
com dois nós cada, ou seja, 128 nós.
Este facto deve-se ao facto de em cada rede estarem reservados o endereço do nó 0 (endereço da
rede) e o endereço de nó com os bits todos 1 (endereço de "broadcast"). Para além destes dois ende-
reços, a definição de uma rede implica também a ligação a um encaminhador ("router") o que ocupa
ainda mais um endereço.
Este desperdicio é meramente teórico pois é largamente compensado pela melhor adaptação do ta-
manho das redes às realidades existentes.
A manipulação da máscara de rede deve ser realizada de uma forma consciente:
O primeiro cuidado fundamental é garantir que nunca existe sobreposição das redes (endereços co-
muns).
- Ao definir uma super-rede vamos ocupar espaço de endereçamento de várias redes. Por exemplo,
em redes de classe C, para criar uma super-rede por recuo de um bit na máscara de rede será neces-
sário usar as duas redes de classe C correspondentes aos dois valores possíveis para esse bit, para
ARQUITETURA E PROTCOLOS TCP/IP
13 WWW.DOMINACONCURSOS.COM.BR
recuar 2 bits serão necessárias as 4 redes de classe C correspondentes aos valores possiveis desses
bits.
- Na divisão em sub-redes colocam-se os mesmos problemas, embora a separação das várias sub-
redes seja normalmente clara, se forem aplicadas simultanemente várias mascaras a uma mesma
rede é necessárioter cuidado para evitar qualquer tipo de sobreposição.
Problema exemplo: necessitamos de 6 ligações dedicadas a 6 redes com cerca de 20 nós cada:
Uma rede de classe C é suficiente:
se usarmos a mascara FF.FF.FF.E0 (27 bits - avanço de 3 bits) obtemos 8 sub-redes com capaci-
dade para 30 nós cada.
das oito redes disponíveis, 6 seriam directamente usadas e uma das duas restantes poderia ser sub-
divididas usando a mascara FF.FF.FF.FC (30 bits), daqui resultariam 8 sub-redes de dois nós cada.
As tabelas seguintes mostram os valores binários do último octeto, para as várias sub-redes, com a
parte de nó preenchida com "?". Pode-se verificar que não existem sobreposições, e por isso a solu-
ção é válida.
Aplicando a mascara FF.FF.FF.E0 obtemos 8 redes com capacidade para 30 nós:
.000|????? 30 nós - .1 a .30
.001|????? 30 nós - .33 a .62
.010|????? 30 nós - .65 a .94
.011|????? 30 nós - .97 a .126
.100|????? 30 nós - .129 a .158
.101|????? 30 nós - .161 a .190
.110|????? 30 nós - .193 a .222
.111|????? 30 nós - .225 a .254
Se garantirmos que (por exemplo) a última rede não é usada (.225 a .254), podemos aplicar-lhe a
mascara FF.FF.FF.FC e deste modo obter 8 redes com dois nós cada:
.111|000|?? 2 nós - .225 e .226
.111|001|?? 2 nós - .229 e .230
ARQUITETURA E PROTCOLOS TCP/IP
14 WWW.DOMINACONCURSOS.COM.BR
.111|010|?? 2 nós - .233 e .234
.111|011|?? 2 nós - .237 e .238
.111|100|?? 2 nós - .241 e .242
.111|101|?? 2 nós - .245 e .246
.111|110|?? 2 nós - .249 e .250
.111|111|?? 2 nós - .253 e .254
Tomando como exemplo a rede de classe C 193.201.232, a solução com todos os endereços especi-
ficados poderia ser:
Note-se ainda o respeito por um princípio prático importante, segundo o qual devemos deixar sempre
disponíveis endereços para ampliação da infraestrutura, a curto prazo. Neste caso particular, além de
cada rede poder ser ampliada até 29 nós, existe uma rede de reserva, bem como endereços para a
respectiva ligação dedicada.
Este tipo de soluções é bastante flexível, mas deve ser sempre validado com cuidado, tal como aqui
se usam duas mascaras diferentes sobre uma mesma rede de classe C, nada nos impede de usar
um qualquer número de mascaras distintas sobre uma qualquer rede de qualquer classe. O que é im-
portante é que não existam endereços que pertençam a mais do que uma rede.
O segundo aspecto critico na manipulação das máscaras de rede consiste em compreender para que
servem as máscaras e deste modo perceber o impacto que a sua manipulação vai ter.
As máscaras de rede servem para extrair de uma forma expedita a parte de rede de um dado ende-
reço, para isso é efetuado o "AND" lógico, bit-a-bit com a máscara de rede.
Esta operação é o primeiro passo para o encaminhamento correcto dos dados IP que se baseia sem-
pre unicamente na parte de rede:
Nós finais - Quando um nó pretende enviar dados aplica a máscara de rede ao endereço de destino,
se obtém o endereço da rede em que se encontra sabe que pode comunicar diretamente, caso con-
trário terá de enviar os dados a um encaminhador/nó intermédio ("router").
Nós intermédios - os nós intermédios têm como missão encaminhar os dados até ao destino correcto,
para o efeito possuem tabelas com endereços de rede, respectiva mascara, e próximo nó. Quando
chegam dados a um nó intermédio, as várias máscaras existentes na tabela vão ser aplicadas ao en-
dereço de destino, se o resultado é o endereço de rede correspondente, então os dados são envia-
dos para o "próximo nó" correspondente.
ARQUITETURA E PROTCOLOS TCP/IP
15 WWW.DOMINACONCURSOS.COM.BR
Como é fácil deduzir, para que as manipulações das máscaras de rede funcionem sem problemas é
necessário que em todos os nós onde as respectivas redes são definidas estejam sempre presentes
as máscaras corretas.
Contudo este tipo de informação não pode normalmente ser propagada para os encaminhadores da
"internet", isto que dizer que estes encaminhadores trabalham na suposição de que as máscaras não
são manipuladas. Podemos por isso afirmar que a manipulação das máscaras de rede é uma defini-
ção apenas com efeito local.
Isto significa que, por exemplo, não é possível dividir uma rede em duas sub-redes e ligar as mesmas
a dois pontos distintos da "internet". As sub-redes, sob o ponto de vista da "internet", têm de estar
agrupadas no mesmo ponto de acesso, porque sob o ponto de vista da "internet" continuam a ser
uma única rede.
Tradução ae Endereços (NAT)
O manuseamento das máscaras de rede (divisão em sub-redes e agrupamento em super-redes), per-
mite eliminar os grandes desperdícios de endereços que de outra forma seriam inevitáveis. O número
de endereços disponibilizado desta forma acabou por se revelar insuficiente para a grande expansão
da "internet" e o que verdadeiramente "salvou" o IPv4 de uma substituição rápida pelo IPv6 foi a tra-
dução de endereços.
Ao observar o tipo de nós finais ligados à "internet", facilmente se constata que a grande maioria as-
sume unicamente o papel de cliente, ou seja apenas recebem respostas aos pedidos por eles formu-
lados, nunca recebem pedidos provenientes da "internet".
Os nós finais nestas condições não necessitam de estar directamente ligados à "internet", para isto
ser possível o "router" que assegura a ligação é substituido por servidores "proxy" de aplicações.
Os servidores "proxy" têm como finalidade optimizar o acesso aos servidores na "internet", para isso
colocam-se numa posição de intermediários entre cliente e servidor.
Por exemplo quando um cliente na rede local (configurado para usar o servidor "proxy"), usa um
"browser" para abrir uma página "WEB":
O cliente, em lugar de contactar o servidor onde a página reside, contacta o servidor "proxy" e for-
nece-lhe o endereço da página.
O servidor "proxy" verifica se possui uma cópia da página em questão e se a cópia está actualizada,
se tal não acontecer contacta o servidor e copia a página para a sua "cache".
O servidor "proxy" responde ao cliente, enviando-lhe a página pedida.
ARQUITETURA E PROTCOLOS TCP/IP
16 WWW.DOMINACONCURSOS.COM.BR
Como se pode verificar os clientes não necessitam de ter acesso à "internet", basta-lhes aceder ao
servidor "proxy". Por seu lado o servidor "proxy" necessita de acesso à "internet".
Nestas condições os podemos dizer que os endereços dos clientes são privados porque nunca comu-
nicam diretamente com a "internet", ou seja os pedidos relativos a estes clientes circulam na "internet"
tendo como endereço de origem o endereço do servidor "proxy", do mesmo modo as respectivas res-
postas têm como destino o endereço do servidor "proxy", os endereços dos clientes nunca transpare-
cem para a "internet". Sob o ponto de vista da "internet" estes clientes não existem.
Numa configuração deste tipo a rede local com endereços privados é também conhecida por rede pri-
vada, teoricamente numa rede privada podem ser usados quaisquer endereços, contudo para evitar
consequências para a "internet" no caso de haver uma falha e "passarem" endereços privados para a
"internet" foram estabelecidas determinadas gamas de endereços para este efeito:
10.XXX.XXX.XXX - uma rede de classe A
172.16.XXX.XXX a 172.31.XXX.XXX - 16 redes de classe B
192.168.0.XXX a 192.168.255.XXX - 256 redes de classe C
Uma vez que estes endereços não estão atribuídos a ninguém, o facto de por acidente se deixarem
escapar pacotes com estes endereços não deverá afetar terceiros.
As redes privadas baseadas em "proxies" de aplicação são perfeitamente funcionais, mas na prática
apenas são aconselháveis para ambientes em que o leque de aplicações de rede usadas é muito li-
mitado.
Para que uma rede privada baseada em "proxies" de aplicação funcione é necessário um servidor
"proxy" (processo/aplicação) para cada protocolo de aplicação usado, além disso a utilização deste
tipo de "proxy" não é directa, isto é cada protocolo de aplicação usado e respectivo "software" clientede rede tem de suportar a utilização de "proxy".
Se para alguns protocolos como o HTTP e o FTP o suporte de "proxy" é um dado adquirido, para ou-
tros protocolos isso nem sempre acontece.
Apesar destes inconvenientes os "proxies" de aplicação têm algumas vantagens únicas:
Eficiência de acesso - para os protocolos de acesso a ficheiros públicos em modo de leitura o "proxy"
armazena cópias locais dos ficheiros evitando sucessivos acessos via "internet".
Segurança - ao trabalhar com um protocolo de aplicação estes "proxies" podem analisar e controlar
os acessos atendendo às especificidades do protocolo, por exemplo analizando o nome de utilizador
e respectiva autenticação.
NAT - Proxy Transparente
Os "proxy" transparentes funcionam a um nível muito inferior, em lugar do nível de aplicação traba-
lham no nível de rede ou transporte, ao contrário dos anteriores assemelham-se muito a um encami-
nhador ("router").
Os "proxies" transparentes encaminham pacotes (Ex.: "datagramas" UDP) de forma absolutamente
idêntica à de um vulgar "router", contudo manipulam os endereços de origem e destino, algo que um
"router" "normal" não faz. Deste facto provem a designação "Network Address Translation" (NAT).
A manipulação dos endereços tem como objectivo "esconder" uma ou várias redes (privadas) "por
trás" de um ou vários endereços oficiais.
ARQUITETURA E PROTCOLOS TCP/IP
17 WWW.DOMINACONCURSOS.COM.BR
Para evitar que os endereços privados cheguem à rede oficial ("internet"), o "proxy" transparente
substitui os endereços de origem de todos os pacotes que são enviados para a rede oficial pelo seu
próprio endereço oficial.
Para manter a capacidade de encaminhar os dados para o endereço de origem correcto na rede pri-
vada usa-se um artificio baseado nos números de porto, imagine-se que um cliente na rede privada
envia um pedido para a "internet":
O cliente requesita um "porto" ao sistema operativo local.
O cliente usa o "porto" para enviar para o "router"
O "router" aplica o algoritmo de encaminhamento e desloca o pedido para a interface com a "internet".
Depois de internamente encaminhado, o "router" abre um porto para proceder ao envio do pacote
para a "internet".
O "router" fixa (numa tabela NAT) que esse "porto" corresponde ao endereço de origem que o pacote
tem (Endereço de Rede + Número de Porto).
O "router" altera o endereço de origem do pacote e envia-o.
Algures na "internet" o servidor responde, enviando a resposta para o "porto" do "router", por consulta
da tabela NAT o "router" determina que o endereço de destino deve ser substituido pelos valores (En-
dereço de Rede + Número de Porto), que se encontram na tabela.
O "router" encaminha a resposta para o cliente.
Com este modo de funcionamento, nem cliente, nem servidor se apercebem do que se está a passar,
esta técnica é, portanto, independente dos protocolos de aplicação, destas caracteristicas provém a
designação "transparente".
Note-se que a tradução de endereços passa-se únicamente na interface ligada à rede oficial e exclu-
indo as manipulações realizadas nessa interface, todo o restante funcionamento é o de um "router"
"normal".
Note-se que estão em jogo duas traduções de endereços:
Na saída do pedido o endereço de origem é alterado - SNAT ("Source NAT").
Na entrada da resposta o endereço de destino é alterado - DNAT ("Destination NAT").
NAT estático
Como foi visto, quando os pedidos são originários dos clientes que se encontram na rede privada, a
tabela NAT é criada automaticamente. Estas entradas na tabela NAT servem para indicar que a che-
gada de dados a um dado porto da interface externa deve ser redireccionada (DNAT) para um dado
número de porto e endereço IP na rede privada.
ARQUITETURA E PROTCOLOS TCP/IP
18 WWW.DOMINACONCURSOS.COM.BR
Sendo isto verdade, então também será possível definir estáticamente entradas DNAT nessa tabela e
com isso conseguimos facultar o acesso externo a servidores na rede privada. Cada uma destas en-
tradas estáticas deverá conter:
Número de porto a escutar na interface da "internet".
Endereço IP de destino (na rede privada).
Número de porto de destino.
Os clientes residentes na "internet" apenas podem contactar estes servidores usando o endereço IP
oficial que assegura a ligação externa do "router".
Quando chega um pedido a um "porto" nestas condições, vai passar-se o seguinte:
O pedido é aceite na interface externa do router e o seu endereço e porto de destino são alterados
para coincidir com o que está na tabela (DNAT).
O pedido é encaminhado, chegando ao servidor no interior da rede privada.
O servidor responde, tendo como destino o endereço do cliente na internet.
Depois de encaminhado no "router", é verificado que existe uma entrada na tabela NAT correspon-
dente a esse endereço/número de porto de origem e por isso o endereço de origem/número de porto
é alterado (SNAT) por forma a coincidir com a entrada estática na tabela.
Sob o ponto de vista do cliente, localizado na "internet", aparentemente está a comunicar com um
servidor que se encontra localizado na interface externa do "router".
Continuam a existir duas traduções de endereços, mas agora em ordem inversa:
Na entrada do pedido o endereço de destino é alterado - DNAT ("Destination NAT").
Na saída da resposta o endereço de origem é alterado - SNAT ("Source NAT").
A definição de entradas estáticas DNAT permite facultar o acesso a vários servidores no interior da
rede privada, contudo estes servidores terão de ser de tipos diferentes para que usem diferentes nú-
meros de porto e assim possam ser distinguidos na interface externa. Se pretendermos facultar
acesso a vários servidores do mesmo tipo na rede privada, o problema complica-se.
Para facultar acesso a vários servidores do mesmo tipo terá de ser usado outro fator além do número
de porto, pois este será igual para todos estes servidores.
A técnica mais simples consiste em atribuir mais do que um endereço oficial à interface externa do
"router", deste modo torna-se simples distinguir os vários servidores no interior da rede privada, cada
endereço oficial corresponde a um servidor distinto. As entradas estáticas DNAT passam então a
conter:
Número de porto a escutar na interface da "internet" (externa).
Endereço IP a escutar na interface da "internet" (externa).
Endereço IP de destino (na rede privada).
Número de porto de destino.
Controlo de fluxo e erros
Estas são duas funções fundamentais para assegurar a ligação lógica. O controlo de fluxo é um me-
canismo que evita que um nó receba mais dados do que pode absorver. O controlo de erros tem por
missão corrigir erros na transmissão dos dados, o mecanismo mais usado é o ARQ ("Automatic Re-
peat Request").
ARQUITETURA E PROTCOLOS TCP/IP
19 WWW.DOMINACONCURSOS.COM.BR
Em ambos os casos os mecanismos usados envolvem retorno de informação de controlo do receptor
para o emissor logo são fortemente afectados pelo atraso de propagação normalizado.
Controlo de Fluxo
Um receptor usa um "buffer" finito tipo FIFO para armazenar temporariamente os dados até que os
níveis superiores os absorvam (grosso modo trata-se de uma fila de espera), como o "buffer" é finito
existe sempre alguma probabilidade de encher com consequente perda de dados.
Para evitar esta situação o receptor tem de dar a conhecer ao emissor o estado do seu "buffer", o me-
canismo mais simples de controlo de fluxo é conhecido por "stop & wait":
O emissor envia um pacote de cada vez, de seguida espera por um "acknowledgment" (ACK) do re-
ceptor, só depois de o receber é que pode enviar outro pacote.
O receptor só envia o ACK ao emissor se possui espaço suficiente no "buffer" de recepção.
Este procedimento é muito afectado pelo atraso de propagação
O tempo total necessário para o envio de um pacote é dado pela soma das seguintes parcelas: tempo
de transmissão do pacote (Tt); atraso de propagação; tempo de processamento no receptor; tempode transmissão do ACK; atraso de propagação; tempo de processamento no receptor. Ou seja:
Ttot = Tt + Tprop + Tproc + Tack + Tprop + Tproc
Normalmente os valores mais significativos são Tt e Tprop, num cálculo aproximado podemos des-
prezar os restantes, sendo então: Ttot = Tt + 2 x Tprop
A eficiência de utilização da linha de transmissão (U) é dada pela razão entre o tempo de transmissão
de um pacote e o tempo de ocupação do sistema que isso produz, ou seja:
U = Tt / (Tt + 2 x Tprop)
Usando o atraso de propagação normalizado temos então: U = 1 / (1 + 2a)
As redes locais não são neste aspecto muito afectadas pelo atraso de transmissão, numa rede local
os valores de a estão geralmente na gama 0,01 a 0,1 dando normalmente origem a eficiências entre
83% e 98%.
Em ligações de longa distância este fenómeno torna-se mais pesado, o caso extremo são as ligações
por satélite onde os valores de a podem atingir a ordem dos milhares, e a eficiência se situa muitas
vezes abaixo dos 10%.
Aparentemente os valores elevados no atraso de propagação poderiam ser compensados pela utiliza-
ção de pacotes de maior dimensão, originando valores mais elevados de Tt, contudo existem diver-
sas razões pelas quais isso não é conveniente:
Obriga a um aumento proporcional nos "buffers" de emissão e recepção.
Como o controlo de erros é efectuado pacote a pacote, quanto maior for o seu tamanho maior é a
probabilidade de um pacote conter um erro, obrigando à retransmissão de todo o pacote. Se forem
usados pacotes pequenos a quantidade de dados retransmitida é muito menor.
Em meios físicos partilhados a utilização de pacotes grandes produz uma ocupação prolongada do
meio de transmissão por um nó, originando tempos de espera elevados nos outros nós.
Protocolo de Janela Deslizante ("Sliding Window Protocol")
A solução consiste no envio e ACK de pacotes em conjunto, o emissor começa por enviar um número
de pacotes w que designaremos de "tamanho da janela". O tamanho da janela é o número de pacotes
que podem ser enviados sem qualquer ACK do receptor.
ARQUITETURA E PROTCOLOS TCP/IP
20 WWW.DOMINACONCURSOS.COM.BR
O tamanho de janela é conhecido tanto pelo emissor como pelo receptor, até porque este último tem
de reservar inicialmente um "buffer" com capacidade para w pacotes, com "stop & wait" apenas ne-
cessitava de reservar espaço para um pacote.
Para garantir o funcionamento do mecanismo, tanto os pacotes como os ACK são númerados de 0 a
w. Esta númeração evita que o receptor tenha de enviar ACK individuais para todos os pacotes.
Compreende-se facilmente o funcionamento sabendo que a regra base é de que o número de paco-
tes que podem ser enviados sem ACK do receptor é w. Por exemplo:
Se o receptor envia ACK-8 quer dizer que já retirou do "buffer" todos os pacotes até PAC-8, nesta si-
tuação o emissor fica a saber que pode manter sem ACK os w pacotes depois do PAC-8.
A eficiência deste método depende do facto de o ACK-0 chegar antes ou depois de o emissor en-
viar w pacotes (esgotar a janela). Esta questão só se põe numa linha "full-duplex", se a linha é "half-
duplex", tal como na animação acima, só depois de os pacotes chegarem ao destino e a linha se en-
contrar livre é que o receptor pode enviar o ACK. Numa linha "half-duplex" a eficiência nunca será de
100%.
Pelo contrário, numa linha "full-duplex", tal como se pode verificar no esquema seguinte, desde que o
ACK-0 chegue ao emissor antes de este esgotar a janela a emissão de pacotes pode ser continua. A
figura seguinte ilustra o funcionamento numa linha "full-duplex" com w=4 e uma eficiência de 100%:
O tempo necessário a esgotar a janela é: w x Tt, normalizando (relativamente a Tt) será : w
O tempo necessário para receber o ACK-0 é : Tt + 2 x Tprop, normalizando será : 1 + 2a
Assim, se:
w > 1 + 2a
, o ACK-0 chega ao emissor antes de esgotar a janela, logo a emissão de pacotes é continua, a efici-
ência é de 100 %.
w < 1 + 2a
, o emissor esgota a janela antes de chegar o ACK-0, logo para enviar w pacotes necessitou de
tempo adicional, exactamente o tempo necessário ao envio de 1 + 2a pacotes.
A eficiência é portanto: U = w / (1 + 2a)
É importante verificar que estes calculos supõem uma linha dedicada "full-duplex", caso contrário
nunca seria possivel enviar um ACK enquanto o emissor está a transmitir uma "rajada" de pacotes.
Os nós funcionam simultanemente como emissores e receptores, existindo circulação de pacotes e
ACK nos dois sentidos, a técnica conhecida por "piggybacking" permite que os sinais de ACK sejam
colocados nos pacotes que circulam em sentido inverso, aumentando a eficiência de utilização.
ARQUITETURA E PROTCOLOS TCP/IP
21 WWW.DOMINACONCURSOS.COM.BR
O campo de "piggybacking" é implementado nos pacotes de dados e geralmente, mesmo que já te-
nha sido enviado um ACK individual, ele volta a ser enviado no pacote de dados pois é necessário
preencher o campo e de qualquer modo este ACK funciona como um "backup" caso o primeiro se
perca.
O procedimento descrito explica a razão pela qual, para uma janela de w pacotes, existem w+1 nú-
meros de sequência, imagine-se a seguinte situação numa linha "full-duplex":
Os números de sequência são 0 a 3.
A janela é de 4 pacotes.
O emissor transmite o PKT-0
O receptor responde com ACK-0
O emissor transmite o PKT-1;PKT-2;PKT-3;PKT-0 (perfeitamente legal porque depois do ACK-0 a ja-
nela ficou novamente em 4).
O emissor recebe ACK-0. Trata-se de uma réplica do primeiro ACK-0 devido ao "piggybacking" ou da
confirmação dos últimos quatro pacotes enviados?
Para evitar esta situação a largura da janela deve ser inferior à gama de valores para os números de
sequência.
Como os números de sequência são transmitidos na forma binária com n bits têm gamas com 2n va-
lores distintos, enquanto a janela tem um comprimento w = 2n - 1.
Mesmo sem "piggybacking", a utilização de w = 2n colocaria problemas sempre que ocorressem erros
nos ACK:
Os números de sequência são 0 a 3.
A janela é de 4 pacotes.
O emissor transmite o PKT-0 a PKT-3
O receptor responde com ACK-3 e espera receber a seguir PKT-0 da nova janela
O ACK-3 não chega ao emissor, este esgota o temporizador e retransmite PKT-0 a PKT-3.
O receptor recebe PKT-0 a PKT-3 e supõe que são pacotes distintos dos anteriores
Controlo de Erros
Os erros podem ser detectados recorrendo a diversas técnicas tais como o CRC, uma vez detectado
o erro é necessário tomar providencias para o corrigir. A solução mais comum consiste na retransmis-
são do pacote danificado, este mecanismo é conhecido por ARQ ("Automatic Repeat Request").
"stop & wait" ARQ
A implementação mais simples é o "stop & wait" ARQ que é em tudo semelhante ao esquema adop-
tado para o controlo de fluxo, a grande diferença é que a informação enviada ao emissor pode ser
ACK ou NAK ("Negative Acknowledgment"):
ACK indica ao emissor que o pacote foi recebido sem erros e pode enviar o seguinte.
NAK indica ao emissor que o pacote foi recebido com erros e deve ser enviado novamente.
Este esquema simples é insuficiente pois o pacote pode nem sequer chegar ao destino, a solução é
usar um temporizador no emissor, se após algum tempo depois do envio não é recebido nenhum
ACK ou NAK o emissor volta a enviar o pacote.
ARQUITETURA E PROTCOLOS TCP/IP
22 WWW.DOMINACONCURSOS.COM.BR
Existe ainda uma situação a considerar: o pacote chega ao destino, mas o ACK ou NAK perde-se e
não chega ao emissor, esta volta a emitir o mesmo pacote que é aceite pelo receptor como se fosse
um pacote novo. Para evitar esta situação tanto os pacotes como os ACK são numerados de 0 a 1.
Tal como acontecia no controlo de fluxo o mecanismo "stop & wait" é fortemente afectado pelo atraso
de propagação normalizado:
Sem erros a eficiência é : U = 1 / (1 + 2a)
Se considerarmos que o número médio de retransmissões por pacote é Nr, então a expressão será:
U = 1 / (1 + 2a)Nr
Sendo p a probabilidade de um pacote ter umerro, pode-se chegar a que Nr = 1 / (1 - p)
, então a eficiência do "stop & wait" ARQ considerando erros nos pacotes (e ignorando erros nos ACK
e NAK) é:
U = (1 - p)/(1 + 2a)
Com ou sem erros, com valores elevados de a a eficiência torna-se muito baixa.
A solução é recorrer novamente ao protocolo de janela deslizante, a aplicação do protocolo de janela
deslizante ao ARQ é conhecida por "ARQ continuo", existindo duas variantes: "go-back-any" e "se-
lective-repeat".
A técnica é absolutamente igual ao que foi descrito para o controlo de fluxo:
O emissor pode transmitir sem confirmação w pacotes que são númerados de 0 a w.
O receptor envia ACK com o número do pacote mais antigo que se encontra no "buffer" ou que es-
pera receber (quando o "buffer" está vazio).
Quando um pacote é recebido com erro o receptor envia NAK em lugar de ACK e o emissor deverá
proceder à retransmissão.
ARQ continuo "go-back-any"
Quando é recebido um pacote com erro, é enviado um NAK ao emissor e todos os pacotes seguin-
tes são ignorados até que o erro seja corrigido.
Imagine-se uma situação em que w=7:
O emissor envia os pacotes 0 a 6
O receptor detecta um erro no pacote 2 e responde com NAK-2, ignorando os pacotes seguintes.
O emissor recebe o NAK-2 e é obrigado a retransmitir os pacotes 2 a 6.
Supondo que desta vez não ocorre qualquer erro o receptor responde com ACK-6.
ARQ continuo "selective-repeat"
O objectivo desta implementação é evitar que pacotes recebidos sem erros sejam retransmitidos.
Retornando à situação anterior (w=7):
O emissor envia os pacotes 0 a 6.
O receptor detecta um erro no pacote 2 e responde com NAK-2, mas continua a receber os pacotes
seguintes (3 a 6).
O emissor recebe o NAK-2 e retransmite apenas o pacote 2.
Supondo que desta vez não ocorre qualquer erro o receptor responde com ACK-6.
O "selective repeat" é sem duvida mais eficiênte, mas também mais complexo, até porque pode em
algumas situações colocar problemas adicionais, voltando ao exemplo, com w=7, suponha-se o se-
guinte:
ARQUITETURA E PROTCOLOS TCP/IP
23 WWW.DOMINACONCURSOS.COM.BR
O emissor envia os pacotes 0 a 6.
O receptor recebe o pacote 2 com erro e responde com NAK-2.
O NAK-2 perde-se, o emissor esgota o temporizador e volta a transmitir os pacotes 0 a 6.
Numa implementação "go-back-any" não se levantam grandes problemas, o receptor ignora os paco-
tes 0 e 1, aceita os pacotes 2 a 6 e responde com ACK-6.
Numa implementação "selective-repeat" tudo se complica porque os pacotes 3 a 6 foram recebidos
sem erro e por isso o receptor fica disponível para aceitar o pacote 2 e os pacotes 7;0;1;2;3;4. Vai por
isso aceitar correctamente o pacote 2, mas incorrectamente os pacotes 0 a 4 que vai colocar na ja-
nela seguinte, mas ainda pertencem à janela anterior.
O problema é que como são aceites pacotes fora de sequência as retransmissões por "timeout" vão
ser desastrosas. A solução é obrigar a que o tamanho da janela seja igual a metade da gama dos nú-
mero de sequência, deste modo nunca é possivel que pacotes retransmitidos por "timeout" tenham
números de sequência aceitaveis para o receptor:
w = 2n/2 ou w = 2n-1
O "selective-repeat" é assim mais exigente quanto à largura da janela, nas implementações anteriores
bastava w = 2n-1.
Voltando novamente ao exemplo, para manter w=7 os números de sequencia terão de ser 0 a 13:
O emissor envia os pacotes 0 a 6.
O receptor recebe o pacote 2 com erro e responde com NAK-2.
O NAK-2 perde-se, o emissor esgota o temporizador e volta a transmitir os pacotes 0 a 6.
Numa implementação "selective-repeat" tudo fica agora claro, os pacotes 3 a 6 foram recebidos sem
erro e por isso o receptor fica disponível para aceitar o pacote 2 e os pacotes 7;8;9;10;11;12. Vai por
isso aceitar correctamente o pacote 2, e vai ignorar os restantes pacotes.
O esquema seguinte ilustra o funcionamento do "go-back-any" e do "selective-repeat", com uma ja-
nela de 4 pacotes, numa linha "full-duplex", quando ocorre um erro na transmissão do pacote 2.
As duas linha a traço interrompido no esquema "go-back-any" correspondem a pacotes que são igno-
rados pelo receptor.
Eficiência do ARQ "selective-repeat" e do ARQ "go-back-any"
Tinhamos já visto que nos protocolos de janela deslizante a expressão geral da eficiência é:
100% quando w > 2a +1
w/(2a +1) quando w < 2a + 1
ARQUITETURA E PROTCOLOS TCP/IP
24 WWW.DOMINACONCURSOS.COM.BR
Estas expressões são válidas quando não ocorrem erros.
Aplicando o mesmo raciocinio usado no "stop & wait" ARQ temos que o número de retransmissões
médio de cada pacote é Nr = 1 / (1-p) , sendo p a probabilidade de ocorrencia de erro num pacote.
O caso "selective-repeat" é em tudo semelhante ao "stop & wait": cada erro origina apenas uma re-
transmissão.
Basta então dividir as expressões que ignoram os erros por Nr.
Eficiência do "selective repeat":
1 - p quando w > 2a + 1
w(1-p) / (2a +1) quando w < 2a + 1
Para o "go-back-any" o raciocinio é o mesmo, mas Nr deve ser redefinido pois um erro num pacote
provoca a retransmissão de k pacotes.
Poderia obter-se que: Nr = (1 - p + kp) / (1- p)
O valor de k depende da relação entre w e 2a + 1:
Se w > 2a +1
O NAK correspondente ao pacote com erro chega ao emissor antes de este esgotar a janela, nessa
altura forma já emitidos 2a + 1 pacotes que terão de ser retransmitidos, logo k = 2a + 1.
Se w < 2a +1
O NAK correspondente ao pacote com erro chega ao emissor depois de este esgotar a janela, nessa
altura forma já emitidos w pacotes que terão de ser retransmitidos, logo k = w.
Podemos agora dividir a expressão geral por Nr.
Eficiência do "go-back-any":
(1 - p) / (1 + 2ap) quando w > 2a + 1
w(1-p) / (2a + 1)(1 - p + wp) quando w < 2a + 1
S O C K E T S
Formalmente falando os sockets foram a forma de permitir que dois processos se comuniquem (Inter-
process communication). Esses processos podem ou não estar na mesma máquina. Nesse artigo ire-
mos entender como os sockets são implementados dentro do ambiente Unix, como linguagens e apli-
cações fazem uso dele.
Diversas aplicações que utilizamos no dia-a-dia fazem uso de sockets pra se comunicar. Nosso nave-
gador web utiliza sockets pra requisitar páginas. Quando um sistema se integra com um banco de da-
dos ele abre um socket. Quando fazemos um ssh em um servidor estamos abrindo e utilizando
um socket.
Originalmente a implementação dos sockets foi feita no 4.2BSD em 1983. Essa implementação foi
portada para o Linux com poucas modificações. Na forma de uma API, os sockets abstraem a ca-
mada de rede para que uma aplicação possa se comunicar com outra sem ter que se preocupar com
detalhes da pilha TCP/IP que gere a rede abaixo dessa aplicação.
Pra entender melhor o funcionamento dos sockets vamos começar voltando na estrutura onde ele se
encaixa enquanto API.
O modelo OSI especifica um padrão de redes para criação de protocolos. Esse modelo divide uma
pilha de redes em 7 camadas, cada uma com suas responsabilidades.
ARQUITETURA E PROTCOLOS TCP/IP
25 WWW.DOMINACONCURSOS.COM.BR
A Internet utiliza como base para todas as suas comunicações a pilha TCP/IP que possui apenas 4
camadas. Baseado no modelo OSI, o TCP/IP é, atualmente, o padrão de comunicação em redes. A
imagem abaixo apresenta uma comparação do modelo OSI com suas 7 camadas em relação as res-
pectivas 4 camadas do modelo TCP/IP:
Considerando a Internet e o TCP/IP, os sockets estão entre a camada de transporte e a de aplica-
ções. Estando nesse ponto de intercessão, eles conseguem fazer uma interface entre a aplicação e
rede de maneira bem transparente.
Assim, aplicações são implementadas através de uma comunicação lógica. Lógica no sentido de que
para esses programas, eles estão se comunicando diretamente um com o outro, mas na prática, eles
estão passando pela rede para trocar mensagens.
A imagem a seguir mostra essa divisão lógica e física de comunicação dentro da pilha TCP/IPe onde
exatamente entre as camadas de transporte e aplicação se encaixa a API de sockets:
Até agora vimos que os sockets foram criados na forma de uma API que possibilita aplicações/pro-
cessos se comunicarem. Quais são essas interfaces que permitem essas comunicações? Abaixo lis-
tamos alguns das principais funções utilizadas ao criar um programa utilizando sockets.
ARQUITETURA E PROTCOLOS TCP/IP
26 WWW.DOMINACONCURSOS.COM.BR
Quando se programa utilizando sockets, uma arquitetura muito comum para esses programas, é utili-
zar o Cliente / Servidor (client/server). Para essa arquitetura temos que implementar um programa cli-
ente e um programa servidor. Ambos fazem uso da mesma API de sockets.
Exemplos de programas nessa arquitetura e que utilizam sockets seriam os pares de cliente -> servi-
dor: ssh -> sshd, chromium -> nginx, ftp -> ftpd. A lista de funções mostradas acima são a implemen-
tação dos sockets em C.
No geral, a maioria das linguagens não rescreve essas funções. Elas fazem uso da biblioteca compi-
lada disponível no sistema operacional. Assim, internamente essas linguagens estão chamando exa-
tamente essa biblioteca em C.
No sistema operacional Linux por exemplo, essa API faz chamadas de sistema, logo a linguagem pre-
cisa explicitamente usar essa API para conseguir abrir um socket. É até uma questão de segurança!
Apenas o núcleo (Kernel) do sistema operacional pode abrir sockets. Ele controla inclusive qual pro-
cesso (programa em execução) tem direito a ler e escrever em determinado socket aberto.
Usando as mesmas funções vistas acima, um cliente e um servidor trocam mensagens através de
seus sockets para tomar decisões de aplicação. Um exemplo do fluxo de trabalho (workflow) utili-
zando sockets seria:
CLIENTE
O programa cliente primeiro cria um socket através da função socket(). Em seguida ele se conecta ao
servidor através da função connect() e inicia um loop (laço) que fica fazendo send() (envio)
e recv() (recebimento) com as mensagens específicas da aplicação. É no par send, recv que temos a
comunicação lógica. Quando alguma mensagem da aplicação diz que é o momento de terminar a co-
nexão, o programa chama a função close() para finalizar o socket.
SERVIDOR
O programa servidor também utiliza a mesma API de sockets. Ou seja, inicialmente ele também cria
um socket. No entanto, diferentemente do cliente, o servidor precisa fazer um bind(), que associa
o socket a uma porta do sistema operacional, e depois utilizar o listen() para escutar novas conexões
de clientes nessa porta.
Quando um novo cliente faz uma nova conexão, a chamada accept() é utilizada para começar a se
comunicar. Da mesma forma que no cliente, o servidor fica em um loop (laço) recebendo e enviando
ARQUITETURA E PROTCOLOS TCP/IP
27 WWW.DOMINACONCURSOS.COM.BR
mensagens através do par de funções send() e recv(). Quando a comunicação com o cliente termina,
o servidor volta a aguardar novas conexões de clientes.
Tipos De Sockets
No geral existem dois tipos de sockets: TCP e UDP. Os dois tipo são controlados pela API de so-
ckets de maneira a abstrair detalhes da rede para o desenvolvedor. Esses tipos são exatamente os
protocolos mostrados na figura que situamos a API de sockets na pilha TCP/IP. Vimos que ela está
imediatamente acima da camada de transporte e abaixo da camada de aplicação.
Os sockets do tipo TCP são orientados a conexão e tem um canal exclusivo de comunicação entre
cliente e servidor. Eles garantem a ordem dos pacotes, são considerados confiáveis e sem perda. No
entanto, quando se trata de se recuperar de falhas e perda de pacotes ele é mais burocrático e lento.
Já os sockets do tipo UDP desconsidera ordem de pacotes, recuperação de falhas e garantia de or-
dem. No entanto, por ser extremamente menos burocrático e simples, ele é mais rápido que o TCP
para alguns tipos de aplicações.
Uma aplicação que faz transações bancárias deveria usar o sockets TCP, pois operações financeiras
não podem ter dados e valores corrompidos durante sua transmissão via rede. Já um jogo, que envia
apenas posições atuais de seus jogadores, pode assumir que pacotes podem se perder e que o mais
importante é a posição atual. O mesmo pode ser dito para uma transmissão de vídeo. Se eu perdi
um frame (pedaço) do vídeo porque minha rede atrasou a entrega dos pacotes, não é necessário pe-
dir novamente o envio do pacote perdido. É muito mais importante receber o atual e continuar a trans-
missão.
Endereçamento IP
O endereco IP indentifica a localização de um host na rede, assim como um endereço de uma casa
identifica a localização da mesma no pais/cidade/estado/bairro/rua.
Cada endereço IP possui uma identificação de rede e uma de host. A identificação de rede indica em
qual (segmentação) de rede o host esta e qualquer host da mesma rede deverá ter a mesma identifi-
cação. A identificação de host indica um host na rede, esse endereço deve ser único.
Um endereço de IP possui 32 bits divididos em 4 octetos de 8 bits, cada octeto é convertido em nú-
mero de base decimal que abrange de [0-255] e são separados por ponto.
Atualmente existem 5 tipos de classes definidas. Estas classes são usadas para definir quantos bits
são alocados para endereço de rede e endereço de hosts, podem ser usadas tambem para dimensio-
nar o tamanho da rede.
A classe A possui endereços de 1.0.0.0 até 127.0.0.0, o 1 octeto (8 bits) é endereço de rede, os 3 últi-
mos octetos (24 bits restantes) são endereços de hosts, assim como (N.H.H.H), então teremos 126
redes e 16.777.214 hosts por rede.
A classe B possui endereços de 128.0.0.0 até 191.255.0.0, os 2 primeiros octetos (16 bits) são ende-
reços de rede, os 2 últimos octetos (16 bits restantes) são endereços de hosts, assim como
(N.N.H.H), então teremos 16.385 redes e 65.534 hosts por rede.
ARQUITETURA E PROTCOLOS TCP/IP
28 WWW.DOMINACONCURSOS.COM.BR
A classe C possui endereços de 192.0.0.0 até 223.255.255.0, os 3 primeiros octetos (24 bits) são en-
dereços de rede, o último octeto (8 bits restantes) é endereço de hosts, assim como (N.N.N.H), então
teremos 2.097.152 redes e 254 hosts por rede.
A classe D possui endereços de 224.0.0.0 até 239.255.255.255, essa classe é usada para protocolos
multicast conforme (RFC 2236).
A classe E possui endereços de 240.0.0.0 até 255.255.255.255, essa classe é experimental e reser-
vada para uso futuro.
O (primeiro) endereço da rede e o (último) endereço da rede não são usados para endereçar hosts
por serem reservados, assim como exemplo seguinte.
O endereço 192.168.192.3 pertence a classe C, tendo como seu endereço de rede 192.168.192.0,
endereço de broadcast 192.168.192.255 e 255.255.255.0 para mascara de subrede.
Um endereço de broadcast é usado para endereçar todos os hosts de uma mesma rede ou (seg-
mento), ou seja, quado se envia um pacote broadcast, o mesmo será enviado para toda a rede.
Compreenda endereços IP de Um ou Mais Servidores Cisco ICM NT
Um endereço IP de Um ou Mais Servidores Cisco ICM NT é um endereço usado a fim identificar ex-
cepcionalmente um dispositivo em uma rede IP. O endereço é composto de 32 bit binários, que po-
dem ser divisíveis em uma porção de rede e hospedar a parcela com a ajuda de uma máscara de
sub-rede. Os 32 bits binários estão divididos em quatro octetos (1 octeto = 8 bits). Cada octeto é con-
vertido em decimal e separado por um ponto final (ponto). Por esse motivo, um endereço IP deve ser
expressado no formato decimal pontuado (por exemplo, 172.16.81.100). O valor em cada octeto varia
de 0 a 255 decimais ou de 00000000 a 11111111 binários.
Aqui está como os octetos binários são convertidos em decimal: O direito a maioria de bit, ou bit me-
nos significativo, de um octeto guarda um valor de 20. O bit apenas à esquerda daquele guarda um
valor de 21. Isto continua até o bit mais à esquerda, ou o bit mais significativo, que guarda um valor de
27. Dessa forma, se todos os bits binários fossemum, o equivalente decimal seria 255 conforme mos-
trado aqui:
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1 (128+64+32+16+8+4+2+1=255)
Aqui está uma conversão de octeto de exemplo quando nem todos os bits estão definidos como 1.
0 1 0 0 0 0 0 1
0 64 0 0 0 0 0 1 (0+64+0+0+0+0+0+1=65)
E esta amostra mostra um endereço IP de Um ou Mais Servidores Cisco ICM NT representado no bi-
nário e no decimal.
10. 1. 23. 19 (decimal)
00001010.00000001.00010111.00010011 (binary)
Esses octetos são divididos para fornecer um esquema de endereçamento que possa acomodar re-
des grandes e pequenas. Há cinco classes diferentes de redes, de A a E. Este documento centra-se
sobre as classes A ao C, desde que as classes D e E são reservadas e o exame delas é além do al-
cance deste documento.
Dado um endereço IP de Um ou Mais Servidores Cisco ICM NT, sua classe pode ser determinada
dos três bit de alta ordem (os três bit leftmost no primeiro octeto). A Figura 1mostra o significado nos
três bits mais altos e a faixa de endereços em que cai cada classe. Para fins informativos, os endere-
ços das classes D e E também são mostrados.
ARQUITETURA E PROTCOLOS TCP/IP
29 WWW.DOMINACONCURSOS.COM.BR
Em um endereço de Classe A, como o primeiro octeto é a porção da rede, o exemplo da Classe A
na Figura 1 tem um endereço de rede principal de 1.0.0.0 a 127.255.255.255. Os octetos 2, 3 e 4 (os
24 bits seguintes) são para o gerente de rede dividir em sub-redes e hosts quando possível. Os ende-
reços da Classe A são utilizados em redes que têm mais de 65.536 hosts (na verdade, até 16777214
hosts!).
Em um endereço de Classe B, como os dois primeiros octetos são a porção da rede, o exemplo da
Classe B na Figura 1 tem um endereço de rede principal de 128.0.0.0 a 191.255.255.255. Os octetos
3 e 4 (16 bits) são para sub-redes local e hosts. Os endereços da Classe B são usados em redes que
tenham entre 256 e 65534 hosts.
Em um endereço da Classe C, os primeiros três octetos são a porção da rede. O exemplo do C da
classe em figura 1 tem um principal endereço de rede de 192.0.0.0 - 223.255.255.255. O Octeto 4 (8
bits) é para sub-redes local e hosts - perfeito para redes com menos de 254 hosts.
Máscaras de rede
Uma máscara de rede ajuda você a saber qual porção do endereço identifica a rede e qual porção do
endereço identifica o nó. As redes das classes A, B, e C têm máscaras padrão, também conhecidas
como máscaras naturais, conforme mostrado aqui:
Class A: 255.0.0.0
Class B: 255.255.0.0
Class C: 255.255.255.0
Um endereço IP em uma rede da Classe A que não esteja em uma sub-rede teria um par ende-
reço/máscara semelhante a: 8.20.15.1 255.0.0.0. A fim ver como a máscara o ajuda a identificar as
peças da rede e do nó do endereço, converta o endereço e a máscara aos números binários.
8.20.15.1 = 00001000.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000
Uma vez que você tem o endereço e a máscara representados no binário, a seguir a identificação da
rede e do ID do host é mais fácil. Todos os bits de endereço com bits de máscara correspondentes
definidos como 1 representam a ID de rede. Todos os bits de endereço com bits de máscara corres-
pondentes definidos como 0 representam a ID de nó.
ARQUITETURA E PROTCOLOS TCP/IP
30 WWW.DOMINACONCURSOS.COM.BR
8.20.15.1 = 00001000.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000
-----------------------------------
net id | host id
netid = 00001000 = 8
hostid = 00010100.00001111.00000001 = 20.15.1
Compreenda o sub-rede
A sub-rede permite criar várias redes lógicas que existem dentro de uma rede única de classe A, B ou
C. Se não criar uma sub-rede, você só poderá utilizar uma rede das classes A, B, ou C, o que é irreal.
Cada enlace de dados em uma rede deve ter uma ID de rede exclusiva, com todos os nós nesse link
sendo um membro da mesma rede. Se dividir uma rede principal (classes A, B ou C) em sub-redes
menores, isso permitirá a você criar uma rede de sub-redes interconectadas.
Dessa forma, cada enlace de dados nessa rede teria uma ID de rede/sub-rede exclusiva. Todo o dis-
positivo, ou o gateway, que conecta redes n/sub-redes têm endereços IP de Um ou Mais Servidores
Cisco ICM NT distintos n, um para cada rede/sub-rede que interconecta.
A sub-rede uma rede, estende a máscara natural com os alguns dos bit da parcela do ID do host do
endereço a fim criar uma identificação da sub-rede por exemplo, dada uma rede Classe C de
204.17.5.0 que tenha uma máscara natural de 255.255.255.0, você pode criar sub-redes desse modo:
204.17.5.0 - 11001100.00010001.00000101.00000000
255.255.255.224 - 11111111.11111111.11111111.11100000
--------------------------|sub|----
Estendendo a máscara para ser 255.255.255.224, você usou três bit (indicados pela "sub") da porção
de host original do endereço e os utilizou para criar sub-redes. Com esses três bits é possível criar
oito sub-redes Com os cinco bits de ID de host restantes, cada sub-rede pode ter até 32 endereços
de host, 30 dos quais pode ser realmente atribuídos a um dispositivo, pois ids de host de todos os ze-
ros ou de todos os uns não são permitidos (é muito importante lembrar-se disso). Dessa forma, com
isso em mente, essas sub-redes foram criadas.
204.17.5.0 255.255.255.224 host address range 1 to 30
204.17.5.32 255.255.255.224 host address range 33 to 62
204.17.5.64 255.255.255.224 host address range 65 to 94
204.17.5.96 255.255.255.224 host address range 97 to 126
204.17.5.128 255.255.255.224 host address range 129 to 158
204.17.5.160 255.255.255.224 host address range 161 to 190
204.17.5.192 255.255.255.224 host address range 193 to 222
204.17.5.224 255.255.255.224 host address range 225 to 254
O esquema de criação de sub-redes para a rede nesta seção permite oito sub-redes, e a rede talvez
apareça como:
Figura 2
ARQUITETURA E PROTCOLOS TCP/IP
31 WWW.DOMINACONCURSOS.COM.BR
Observe que cada um dos roteadores na Figura 2 está conectado a quatro sub-redes, uma sub-rede
é comum a ambos os roteadores. Além disso, cada roteador tem um endereço IP para cada sub-rede
a que está conectado. Cada sub-rede pode oferecer suporte a até 30 endereços de host.
Isso ativa um ponto interessante. Quanto mais bits de host você utiliza para uma máscara de sub-
rede, mais sub-redes são disponibilizadas. No entanto, quanto mais sub-redes estiverem disponíveis,
menos endereços de host disponíveis por sub-rede haverá.
Por exemplo, uma rede da Classe C de 204.17.5.0 e uma máscara de 255.255.255.224 (/27) permite
a você ter oito sub-redes, cada uma com 32 endereços de host (30 das quais poderiam ser atribuídas
a dispositivos). Se você usar uma máscara de 255.255.255.240 (/28), a divisão será:
204.17.5.0 - 11001100.00010001.00000101.00000000
255.255.255.240 - 11111111.11111111.11111111.11110000
--------------------------|sub |---
Como agora você tem quatro bits para fazer sub-redes, há apenas quatro bits remanescentes para
endereços de host. Portanto, nesse caso, pode haver até 16 sub-redes, cada uma das quais com até
16 endereços de host (14 dos quais podem ser atribuídos a dispositivos).
Observe como uma rede da Classe B pode estar em uma sub-rede. Se tiver a rede 172.16.0.0, você
saberá que sua máscara natural é 255.255.0.0 ou 172.16.0.0/16. A extensão da máscara para algo
além de 255.255.0.0 significa que você está criando uma sub-rede. É possível ver rapidamente que
você pode criar muito mais sub-redes do que com a rede de Classe C. Se você usar uma máscara de
255.255.248.0 (/21), quantas sub-redes e hosts por sub-rede isso permitirá?
172.16.0.0 - 10101100.00010000.00000000.00000000
255.255.248.0 - 11111111.11111111.11111000.00000000
-----------------| sub |-----------
Você usa cinco bits dos bit originais do host para sub-redes. Isto permite que você tenha 32 sub-re-
des (25). Depois deusar os cinco bits para a sub-rede, você ficará com 11 bits para endereços de
host. Isto permite cada sub-rede assim que tem 2048 endereços de host (211), 2046 de que poderia
ser atribuído aos dispositivos.
Redes de Comunicação de Dados
A linha de conhecimento e pesquisa “Redes de Comunicação de Dados” concentra as áreas tradicio-
nalmente chamadas de “Redes de Comunicações e Redes de Computadores”. A distinção entre es-
tas áreas era mais aparente no passado, no entanto, com o advento da convergência das tecnologias
de computação e de comunicação os seus limites se tornarem quase indistintos e uma acaba sobre-
pondo outra.
Esta matéria trata de uma forma mais resumida, alguns conceitos vistos em “Redes de Comunicação
de Dados”, principalmente por acadêmicos em “Tecnologia da Informação e Comunicação” e áreas
afins, ou por curiosos e simpatizantes, navegantes da Internet.
ARQUITETURA E PROTCOLOS TCP/IP
32 WWW.DOMINACONCURSOS.COM.BR
Comunicação de Dados
A Comunicação Dados é uma disciplina da área de “Ciências da Computação” que trata da trans-
missão de informação entre sistemas computacionais e dispositivos diferentes através de um meio
de transmissão. A transmissão de informação pressupõe a passagem de sinais através dos meios fí-
sicos de comunicação que compõem as redes.
Quanto a Eficiência
Quando falamos sobre eficiência de um sistema de comunicação de dados, é necessário conhecer 3
fundamentais características: Serviço de Entrega, Confiabilidade e Tempo de Atraso.
Entrega (ou delivery): Os dados devem ser recebidos somente pelo dispositivo ou usuário de des-
tino, ou seja, o sistema deve entregar os dados ao destino correto;
Confiabilidade: Dados modificados ou corrompidos em uma transmissão são pouco úteis, portanto,
o sistema deve garantir a entrega dos dados;
Tempo de atraso: Dados entregues tardiamente são pouco úteis. Por exemplo, no caso de trans-
missões multimídia, como vídeo, os atrasos não são desejáveis, de modo que eles devem ser entre-
gues praticamente no mesmo instante em que foram produzidos, isto é, sem atrasos significativos.
Neste caso, o sistema deve entregar dados em um tempo predeterminado e evitar ao máximo os
atrasos.
Quanto aos Componentes
Para que a comunicação seja realizada, o processo é composto de elementos básicos, são estes:
Mensagem: é a informação a ser transmitida. Pode ser constituída de texto, números, figuras, áudio
e vídeo – ou qualquer combinação desses;
Transmissor (TX): é o dispositivo que envia a mensagem de dados. Pode ser um computador, uma
estação de trabalho, um telefone, uma câmera de vídeo e assim por diante;
Receptor (RX): é o dispositivo que recebe a mensagem. Pode ser um computador, uma estação de
trabalho, um telefone, uma câmera de vídeo e assim por diante;
Meio de Transmissão: é o caminho físico por onde viaja uma mensagem originada e dirigida ao
receptor;
Protocolo: é um conjunto de regras que governa a comunicação de dados. Ele representa um
acordo entre os dispositivos que se comunicam.
Transmissão de Dados
A Transmissão de Dados é uma matéria cada vez mais importante para qualquer pessoa que opere
com equipamentos que estejam inseridos num sistema de comunicação, que explora maneiras ou
técnicas, através das quais as informações são transmitidas. Para uma transmissão dada numa via
de comunicação entre duas máquinas, a comunicação pode ser realizada de diferentes formas, defi-
nindo-se por:
Sentido da Transmissão (Trocas):
Simples;
ARQUITETURA E PROTCOLOS TCP/IP
33 WWW.DOMINACONCURSOS.COM.BR
Half-duplex;
Full-duplex.
Modo de Transmissão (Meio). Trata-se do número de bits enviadas simultaneamente:
Paralela;
Serial.
Sincronização (Tipos). Trata-se da sincronização entre emissor e receptor:
Síncrono;
Assíncrono.
Para podermos esclarecer cada uma das técnicas acima citadas vamos falar mais um pouco de cada
uma delas.
Sentido da Transmissão
O sentido de transmissão (ou sentido das trocas) entre dois dispositivos em redes pode acontecer de
três maneiras diferentes: Simplex, Half-duplex ou Full-duplex.
Simplex: A comunicação simplex é aquela em que há somente um transmissor e um receptor. A co-
municação é unidirecional, como em uma rua de mão única. Somente um dos dois dispositivos no link
é capaz de transmitir, logo o outro só será capaz de receber. Como exemplo temos a transmissão de
TV e rádio AM e FM onde apenas podemos receber os dados enviados pelo receptor e não interagi-
mos com o sistema.
Half-duplex: Neste modo, cada estação pode transmitir e receber, mas nunca ao mesmo tempo.
Quando um dispositivo está transmitindo o outro está recebendo e vice-versa. Em uma transmissão
half-duplex, toda a capacidade do canal é dada ao dispositivo que estiver transmitindo no momento.
Como exemplo temos a comunicação usada por exemplo por um Walk Talking assim como o rádio
Nextel.
Full-duplex: Neste modo, ambas estações podem transmitir e receber simultaneamente, ou seja,
ao mesmo tempo. Sinais em direções opostas compartilham a capacidade do link ou canal. Como
ARQUITETURA E PROTCOLOS TCP/IP
34 WWW.DOMINACONCURSOS.COM.BR
exemplo temos a comunicação através de um telefone celular, onde conseguimos falar e ouvir ao
mesmo tempo.
Modos de Transmissão
O modo de transmissão designa o número de unidades elementares de informações (bits) que po-
dem ser transmitidas simultaneamente pelo canal de comunicação, ou seja, trata diretamente, a
quantidade de bits a ser transmitida ao mesmo tempo.
Transmissão em modo Paralelo: Na transmissão em modo paralelo, os bits que compõem o ca-
rácter são enviados simultaneamente através de várias vias de dados. Uma via é, por exemplo, um
fio, um cabo ou qualquer outro suporte físico. A ligação paralela dos computadores de tipo PC neces-
sita geralmente de 10 fios. A imagem abaixo, exemplifica o modo de transmissão.
Estas vias podem ser
N linhas físicas: neste caso, cada bit é enviado para uma linha física (é a razão pela qual os cabos
paralelos são compostos de vários fios em cobertura);
Uma linha física dividida em vários sub-canais compartilhando a mesma banda. Assim, cada bit é
transmitido numa frequência diferente.
Dado que os fios condutores estão próximos numa cobertura, existem perturbações / interferências
que degradam a qualidade do sinal.
Transmissão em modo Série: Na transmissão em modo série, os bits que compõem a informação
são enviados um a um através de uma única via de dados.
ARQUITETURA E PROTCOLOS TCP/IP
35 WWW.DOMINACONCURSOS.COM.BR
Quanto a Sincronização
Dados os problemas com a transmissão paralela, é a em modo série que é mais utilizada. Entretanto,
como é apenas um só fio que transporta a informação, existe um problema de sincronização entre o
emissor e o receptor, ou seja, o receptor não pode a priori distinguir os caracteres (ou mesmo, de ma-
neira mais geral, as sequências de bits) porque os bits são enviadas sucessivamente. Existem então
dois tipos de transmissão que permitem remediar este problema: Síncrona e Assíncrona.
Transmissão Assíncrona: No modo de transmissão Assíncrono os dados são enviados um a um
sem controle de tempo entre um e outro. Agora, imagine que só um bit é transmitido durante um
longo período de silêncio, onde o receptor não poderia saber que se trata de 00010000, ou 10000000
ou ainda 00000010.
Para remediar este problema, cada dado é precedido de uma informação que indica o início da
transmissão deste (a informação de início de emissão chama-se bit START) e termina com o envio de
uma informação de fim de transmissão (chamada bit STOP, pode eventualmente haver vários bits
STOPS). Normalmente utilizada quando não é estabelecido, no receptor, nenhum mecanismo de sin-
cronização relativamente ao emissor.
Características:
- Baixo Rendimento (alto overhead).
- Fácil Implementação;
- Baixa Velocidade;
TransmissãoSíncrono: Na transmissão em modo Síncrono os dados são enviados em blocos e
em intervalos de tempo definidos, dados de sincronismo são enviados durante a transmissão para
manter o sincronismo entre as máquinas.
O receptor recebe continuamente (mesmo quando nenhum bit é transmitido) as informações ao
ritmo em que o emissor as envia. É por isso é necessário que emissor e receptor estejam sincroniza-
dos à mesma velocidade. Além disso, informações suplementares são inseridas para garantir a au-
sência de erros na transmissão.
Características:
- Boa qualidade de transmissão;
- Custo de transmissão mais elevado;
- Equipamento mais sofisticado;
- Ideais para transmissão de sinais sensíveis a atraso (voz, música, vídeo);
- Transmissão com maior confiabilidade;
- Adequado para aplicações multimídia.
1. Entrega (delivery): o sistema deve entregar os dados ao destino correto. Os dados devem ser re-
cebidos somente pelo dispositivo ou usuário de destino.
2. Confiabilidade: o sistema deve garantir a entrega dos dados. Dados modificados ou corrompidos
em uma transmissão são pouco úteis.
Hoje, a maioria das linguagens de programação são orientadas a objetos como Java, C#,
Python e C++e, apesar de terem algumas diferenças na implementação, todas seguem os mesmos
princípios e conceitos. Muitos programadores, apesar de utilizarem linguagens orientadas a objetos,
não sabem utilizar alguns dos principais conceitos desse paradigma orientado a objetos e, por isso,
desenvolvem sistemas com alguns erros conceituais e acabam escrevendo mais código que o neces-
sário, não conseguindo reutilizar o código como seria possível.
ARQUITETURA E PROTCOLOS TCP/IP
36 WWW.DOMINACONCURSOS.COM.BR
Este artigo fará uma revisão dos principais conceitos de orientação a objetos e mostrará diversos
exemplos de implementação dos conceitos de orientação a objetos em Java. Os principais concei-
tos do paradigma orientado a objetos são Classes e Objetos, Associação, Encapsulamento, Herança
e Polimorfismo.
Classe e Objeto
Uma classe é uma forma de definir um tipo de dado em uma linguagem orientada a objeto. Ela é for-
mada por dados e comportamentos.
Para definir os dados são utilizados os atributos, e para definir o comportamento são utilizados méto-
dos. Depois que uma classe é definida podem ser criados diferentes objetos que utilizam a classe.
A Listagem 1 mostra a definição da classe Empresa, que tem os atributos nome, endereço, CNPJ,
data de fundação, faturamento, e também o método imprimir, que apenas mostra os dados da em-
presa.
Programação Orientada a Objetos (POO)
Trata-se de um paradigma de programação relativamente recente, que se baseia fundamentalmente
no conceito de Objetos. É uma forma de desenvolvimento de sistemas de software que o trata como
um conjunto de componentes que interagem entre si para resolver um problema. Esses componentes
são denominados Objetos. Os objetos são os “blocos de construção” de software na OO.
Objeto
Trata-se de uma ocorrência específica de uma classe; é uma “instância de classe”. Os objetos são a
base da OO (Orientação a Objetos). Os objetos representam entidades do mundo real, como aviões,
pessoas, contas correntes, etc., mas também podem representar outros conceitos, como gráficos (cír-
culos, quadrados, cones, esferas, etc.) Um objeto possui características próprias (atributos) e executa
determinadas ações (métodos), sendo esses atributos e métodos provenientes da classe que origina
o objeto.
Abstração abstrair significa selecionar aspectos específicos de um problema a ser analisado, dei-
xando de lado outros aspectos. É a representação de uma entidade do mundo real na forma de
idéias. As entidades abstraídas podem se comunicar entre si, por meio da troca de Mensagens
Mensagens os objetos se comunicam a partir da troca de mensagens. Uma mensagem é um sinal
enviado de um objeto a outro, o qual requisita um serviço, usando uma operação programada no ob-
jeto chamado.
Por exemplo, para que um objeto execute um método, é necessário enviar a este objeto uma mensa-
gem solicitando a execução do método desejado. As mensagens somente ocorrem entre objetos que
possuem uma Associação. As mensagens também são programadas. Quando uma mensagem é re-
cebida, uma operação é invocada no objeto chamado. Há vários formatos de mensagens: procedures
(subs e functions), passagem de sinais entre threads, acionamento de eventos, etc
.
Classes
Uma Classe é uma coleção de objetos que são descritos com os mesmos atributos e as mesmas
operações. Uma classe representa uma idéia ou conceito e classifica objetos que tenham proprieda-
des similares. As classes representam os blocos de construção mais importantes dos sistemas orien-
tados a objetos, e devem possuir responsabilidades bem definidas dentro da aplicação.
Uma classe é como se fosse um tipo abstrato de dados, um “molde” para a criação de objetos. Um
objeto é, portanto, um “Instância de uma Classe” As classes possuem atributos e métodos. Atribu-
ARQUITETURA E PROTCOLOS TCP/IP
37 WWW.DOMINACONCURSOS.COM.BR
tos são características da classe, que são comuns a todos os objetos derivados, e que podem apre-
sentar valores diversos. Já os Métodos são as operações possíveis em uma classe (nos objetos ins-
tanciados a partir dela).
Atributo de Classe Ou Propriedade: Característica particular de uma ocorrência de uma classe,
como por exemplo o nome e a idade de uma pessoa. Existem dois tipos principais de propriedades: -
Estáticas: Mantém o mesmo valor durante toda a sua existência. Por exemplo, a data de nascimento
de uma pessoa é uma propriedade estática, pois mantém o mesmo valor durante toda a existência do
objeto instanciado.
Dinâmicas: Podem ter valores que variam com o passar do tempo. A idade de uma pessoa pode ser
considerada um atributo dinâmico, pois pode variar ao longo do tempo.
É a lógica contida em uma classe para atribuir-lhe comportamentos. São as funções e procedimentos
contidos na classe. O ato de invocar um método é a passagem de mensagens para o objeto. Toda
classe possui um método especial chamado de método construtor, que inicializa o objeto instanciado.
As classes também usam métodos destruidores para finalizar os objetos após seu uso. Um método é
uma sequência de declarações (comandos) que possui um nome de identificação.
É similar a uma função ou procedimento. Um método possui um nome e um corpo onde ficam os co-
mandos que serão executados quando o método for chamado, e também podem receber dados para
processamento (parâmetros) e retornar informações.
Os métodos são a forma principal de passagem de mensagens entre objetos. Um método deve exe-
cutar sempre uma operação única. Os métodos também precisam ter um tipo de retorno, que pode
ser um tipo de valor, de referência ou ainda void (não retornam valor).
Instância de Classe
É o objeto, uma ocorrência específica de uma classe. As classes originam instâncias sob requisição,
no processo denominado Instanciação. O projetista / analista cria a classe. A classe é então usada
para criar objetos em tempo de execução. Veja a seguir um exemplo de criação de classe na lingua-
gem C#
Herança
Herança, em orientação a objetos, é a capacidade de um novo objeto tomar atributos e operações de
um objeto existente. Assim, podemos criar classes mais complexas sem que precisemos repetir có-
digo. Aqui, a palavra-chave é Reuso de código, e é uma das metas a se atingir ao desenvolver sof-
tware. O reuso permite reduzir o esforço dispendido no desenvolvimento de software ao reaproveitar-
mos códigos de uma classe na criação de outras classes.
A Herança é, portanto, um conceito extremamente importante em Orientação a Objetos. Usamos a
herança, por exemplo, para evitar repetição ao definirmos classes com características em comum e
que são relacionadas entre si.
A herança é um relacionamento entre classes, que permite que uma classe “adquira” os membros
(atributos e métodos) deoutra classe. Um exemplo clássico de herança seria a classificação de ma-
míferos no reino animal.
Homens, Baleias e Gatos são mamíferos, que compartilham muitas características entre si, mas cla-
ramente possuem atributos que os diferem uns dos outros. Como podemos modelar Baleias, Gatos e
Humanos em um software? Podemos criar classes distintas para cada animal, mas essas classes te-
riam muitos comportamentos (“métodos”) em comum entre eles, como Respirar, mamar e Reproduzir-
se, o que ocasionaria repetição desnecessária de código.
ARQUITETURA E PROTCOLOS TCP/IP
38 WWW.DOMINACONCURSOS.COM.BR
Usamos então Herança para resolver esse problema. Podemos criar uma classe chamada Mamífero
que possua as características comuns a todos os animais mamíferos, e então criar as classes Hu-
mano, Baleia e Gato herdando essas funcionalidades e também implementando as funcionalidades
específicas de cada animal, como Falar, Nadar e Miar.
Conceitos Básicos de Comunicação de Dados
Definição
Redes, genericamente, são sistemas que possibilitam a disponibilização e compartilhamento de re-
cursos e serviços.
Exemplos
Rede Bancária
Rede de abastecimento de combustível
Rede Telefônica
Rede de Supermercados
As redes de computadores provêem sistemas computacionais que permitem o compartilhamento
dos recursos que eles fornecem.
Exemplos
Sistemas de arquivos
Sistemas de impressão
Sistemas de identificação
Sistemas de troca de mensagens
Classificação das Redes
As redes podem ser classificadas de acordo com vários critérios. A seguir algumas classificações:
Quanto ao Processamento
Refere-se a onde o processamento é realizado, e pode ser:
Computação Centralizada
Grandes computadores (mainframes) centralizam o processamento, armazenamento e manipulação
dos dados.
Estes computados são acessíveis através de terminais “burros”, isto é, sem capacidade de processa-
mento.
As redes nasceram da necessidade destes grandes computadores serem conectados entre si para
compartilharem recursos.
Computação Distribuída
Neste modelo, as entidades têm capacidade própria de processamento.
Por exemplo, uma rede com PCs.
A aplicação é dividida em tarefas, e cada tarefa pode ser designada a uma das entidades em rede.
Computação Colaborativa
ARQUITETURA E PROTCOLOS TCP/IP
39 WWW.DOMINACONCURSOS.COM.BR
É um tipo de computação distribuída, no qual uma mesma tarefa pode ser atribuída a mais de uma
entidade.
Estas “colaboram” para a execução desta mesma tarefa.
Quanto à disponibilização dos serviços
É determinada pela forma em que os recursos são compartilhados. Podem ser classificadas em:
Redes ponto-a-ponto
Todas as máquinas provêem e solicitam serviços da rede.
O sistema operacional é o mesmo em todas as máquinas.
É um sistema adequado para redes pequenas, em que não há grande preocupação com controle de
acesso aos recursos, como arquivos e serviços de impressão. Caso esse controle seja necessário, é
difícil o gerenciamento nesta arquitetura.
Modelo Cliente/Servidor
Uma entidade provê serviços à rede, e outras consomem estes serviços.
A máquina que provê os serviços é chamada de servidor, e as demais, clientes.
Embora a máquina que atue como servidor normalmente tenha uma capacidade de hardware supe-
rior, o que a diferencia das demais é seu sistema operacional, concebido para compartilhar e geren-
ciar os recursos da rede.
Exemplo: consultas a bases de dados, serviços como email, páginas web, etc
Modelo Cliente/Rede
É uma extensão do modelo cliente/servidor. Uma máquina que irá solicitar serviços (cliente) conecta-
se a um serviço de diretório ao invés de um servidor.
Este diretório é responsável por gerenciar os serviços da rede, e os disponibilizará ao cliente de
acordo com sua solicitação e nível de acesso.
Esta é uma situação comum numa intranet, por exemplo, onde nos autenticamos uma única vez num
diretório (Active Directory, eDirectory, SunOne, por exemplo) e ganhamos acesso a serviços providos
por vários servidores instalados na rede.
Quanto à Dimensão
Com respeito às dimensões físicas de uma rede, ela pode ser classificada como:
AN – Local Area Network
Normalmente conectam um número relativamente pequeno de máquinas.
Raramente ultrapassa alguns kilômetros.
Não utiliza um grande número de tecnologias de conectividade.
Tem o uso restrito a uma corporação.
MAN – Metropolitan Area Network
Situa-se na ordem de dezenas de kilômetros.
Comum em serviços públicos de comunicação, de abrangência de uma cidade, como TV a Cabo
ARQUITETURA E PROTCOLOS TCP/IP
40 WWW.DOMINACONCURSOS.COM.BR
Pode combinar mais de uma tecnologia para conectividade, como meios de comunicação com cabo
em certos segmentos e sem cabo (wireless) em outros.
WAN – Wide Area Network
Dimensões de centenas ou milhares de kilômetros; podem ser nacionais ou internacionais.
Utiliza grande variedade de tecnologias e dispositivos físicos.
Pode ser de uso governamental, privado ou público.
A Internet
O termo internework refere-se a um conjunto de redes interconectadas.
O exemplo mais conhecido de uma internetwork é a Internet.
Assim, a Internet é um grande conjunto de muitas redes.
Não deve ser confundida com WWW – World Wide Web, que é o serviço de páginas de hipertexto
acessadas com um browser, e que usa a Internet como meio de comunicação.
Elementos Essenciais na Comunicação
As redes de computadores são na verdade apenas um mecanismo dedicado a realizar alguns aspec-
tos específicos de uma função muito maior, que é uma necessidade básica da humanidade: a comu-
nicação.
Apesar do assunto ser muito mais amplo, para os fins desta introdução podemos identificar 3 elemen-
tos essenciais em qualquer processo de comunicação:
1. Duas entidades com algo a compartilhar.
2. Um meio de comunicação entre elas.
3. Regras que controlem a comunicação.
Numa rede de computadores encontramos eles mesmos elementos nos seguintes termos:
1. Entidades com algo a compartilhar (máquinas e serviços)
2. Meios de comunicação (cabos, fibras óticas, ondas eletromagnéticas)
3. Regras de comunicação (protocolos e padrões)
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________
_________________________________________________________________________________