Você está na página 1de 45

Conhecimentos específicos

“Camuflar um erro seu é


anular a busca pelo
conhecimento. Aprenda
com eles e faça novamente
de forma correta.”
Nara Nubia Alencar
ARQUIVO DIGITAL

Arquivo Digital

A digitalização se tornou indispensável nos tempos atuais, já que cada vez aumenta a necessidade
de substituir os documentos físicos por suas versões digitais.

Para aproveitar todos os aspectos positivos desse serviço, é fundamental atender a algumas práticas
específicas e que exigem máxima atenção.

Existem duas definições que podem ser usadas para o termo “arquivo digital”.

Uma mais técnica, voltada para profissionais de informática e TI, e outra mais simples e aplicável no
dia a dia.

Para a TI, o arquivo digital é pensado como um arquivo composto por dados binários – sempre 0 e 1
– que formam um dado.

O conjunto de dados, por sua vez, formam informações, que podem ser salvas em arquivos.

Mas, quando falamos de maneira mais simples e acessível, arquivo digital é uma informação – uma
imagem, um texto, uma planilha, um gráfico, etc. – que está salvo em um dispositivo e pode ser com-
partilhado com outras pessoas.

Arquivos digitais podem ser compartilhados, o que facilita, portanto, o seu back-up. Ou seja, são ar-
quivos que não se perdem, pois você pode fazer cópias e mantê-los em locais seguros, como a nu-
vem.

É possível digitalizar qualquer documento? – Arquivo Digital

Sim! Hoje em dia você pode transformar qualquer documento em um arquivo digital.

Existem diferentes meios de certificação e assinaturas digitais que também conseguem atribuir a
mesma validade do papel ao arquivo digitalizado.

Por que digitalizar?

Não é difícil encontrar hoje em dia empresas que optaram pela digitalização de documentos.

Quando você faz isso acaba trocando toneladas de papéis por pastas virtuais organizadas e de fácil
acesso.

Então, imagine que antes você tinha que mexer em dezenas de gavetas atrás de informações sobre
seus clientes. Tudo isso hoje pode ser transformado em uma pastinha no seu computador, com o
nome “clientes”.

Fazer uma boa gestão documental é importantíssimo para qualquer empresa, não importa o seg-
mento.

Os documentos guardados possuem sempre alguma relevância, e mantê-los seguros e organizados


é fundamental.

Organização:

O arquivo digital pode ser organizado de forma muito mais clara, respeitando as necessidades da
empresa.

Por exemplo, se você prefere uma organização por nome, por valor, por data…tudo isso pode ser
feito.

WWW.DOMINACONCURSOS.COM.BR 1
ARQUIVO DIGITAL

Como digitalizar todos os arquivos?

Fazer a digitalização não é um processo tão simples. O ideal é que você conte com uma empresa es-
pecializada para fazer isso.

O Grupo Gerenciar é uma empresa que oferece soluções tecnológicas para gestão de documentos,
arquivamento e digitalização.

Pode ser a solução para que a sua empresa migre do papel para o arquivo digital.

Além disso, fornece um sistema de gerenciamento de documentos poderoso, capaz de tornar a orga-
nização dos seus arquivos digitais muito mais eficiente e segura do que simplesmente guardar no
computador.

Formato de arquivo

Formato de arquivo é a forma usada por determinadas aplicações computacionais para reconhecer
os dados gerados e editados por eles.

Cada aplicativo tem um formato específico de arquivo digital gerado, padronizado ou não, para que
possa tratar as informações contidas neste, que posteriormente poderão ser modificados, impressos
ou, transportados.

Tipos

Os formatos de arquivos digitais podem ser:

Arquivos de texto

Arquivos de Imagem

Arquivos de som

Arquivos de vídeo

Arquivos Compactados

WWW.DOMINACONCURSOS.COM.BR 2
ARQUIVO DIGITAL

Bancos de dados

Arquivos executáveis

Alguns tipos de arquivo mais comuns foram criados por grandes empresas como a Micro-
soft, Adobe, IBM, Oracle dentre outras, e se tornaram padrão de mercado.

Exemplos

.HS - código de programa do Haskell

.XLS - planilhas do Microsoft Excel

.DBF - bancos de dados Dbase

.MDB ou .ACCDB - bancos de dados Access

.FB - bancos de dados Firebird

.DOC - documento de texto do Microsoft Word

.PDF - documento do Acrobat Adobe

.TXT - arquivos de texto comum.

Armazenamento De Arquivos Digitais

A melhor maneira de realizar o armazenamento digital é por meio da contratação de um software que
captura e arquiva digitalmente as informações da empresa, que podem ser acessados de modo se-
guro com qualquer dispositivo e de qualquer lugar, mesmo que estejam armazenados em outro local.

Em geral, o armazenamento funciona na nuvem, ou seja, através da internet, realiza-se o upload dos
arquivos que estão armazenados em seu dispositivo para a nuvem, que nada mais é do que uma es-
trutura de servidores de propriedade de empresas de tecnologia que disponibilizam o serviço.

Além disso, a catalogação dos arquivos digitais pode ser feita por um sistema de Gestão Eletrônica
de Documentos (GED) — desenvolvido para controlar todos os arquivos digitais da empresa a fim de
otimizar o fluxo de trabalho.

Esse sistema possibilita capturar, processar, armazenar, compartilhar e realizar backup de documen-
tos de uma empresa, sendo capaz de concentrar todas as informações do negócio em um mesmo lo-
cal, facilitando o acesso e tornando os dados mais seguros.

Quais são os documentos que precisam ser armazenados

Como citado, todos os documentos que comprovam os pagamentos feitos pela empresa devem ser
armazenados conforme previsão legal do órgão fiscalizador.

Alguns deles, previdenciários e trabalhistas, devem ser guardados por tempo indeterminado, como o
Livro de Registro de Funcionários.

Pedido de demissão, aviso prévio e Termo de Rescisão de Contrato de Trabalho devem ser armaze-
nados por 2 anos. Pelo prazo de 5 anos, devem ser mantidos o controle de ponto e as documenta-
ções comprobatórias.

A folha de pagamento, as guias de recolhimento do INSS, o atestado médico e outros documentos


precisam ser arquivados por 10 anos. Por último, a documentação referente ao FGTS deve ser man-
tida por 30 anos.

WWW.DOMINACONCURSOS.COM.BR 3
ARQUIVO DIGITAL

armazenamento externo de dados

Como vimos, o armazenamento de dados é o processo em que dispositivos são capazes de ler e gra-
var arquivos.

Cada um deles apresenta diversas particularidades que podem ser observadas, que levam em conta
desempenho e confiabilidade para proteção e recuperação de dados.

Atualmente, é possível contar com diversas categorias de armazenamento, podendo encontrar no


mercado uma variedade de dispositivos externos que conseguem armazenar grandes quantidades de
informações, permitindo, assim, mais portabilidade e facilidade ao transferir os arquivos.

É importante destacar que saber diferenciar as opções de armazenamento de dados facilita a escolha
do melhor destino para determinado tipo de arquivo.

Por esse motivo, conheça abaixo os principais detalhes sobre cada um deles!

Armazenamento Óptico

Trata-se da leitura de dados por meio de um laser de alta precisão projetado sobre a superfície da mí-
dia, que “varre” uma determinada área.

Os principais exemplos desse tipo de armazenamento são CD’s, DVD’s e Blu-Rays.

Esse tipo de armazenamento é realizado com sulcos microscópicos gravados em espirais nas mídias,
impossíveis de serem visualizados com clareza a olho nu.

Dessa forma, quando o laser entra em contato com os sulcos, seu formato desvia os raios em várias
direções, de modo que o conteúdo gravado seja apresentado no receptor correspondente.

Armazenamento Magnético

Nesse caso, os dispositivos usam drives que se conectam aos computadores de diferentes maneiras
para receberem os dados.

Os antigos disquetes são ótimos representantes dessa categoria e um dos primeiros dispositivos
magnéticos utilizados, assim como os discos rígidos (HDs) e as fitas K-7.

Com relação à tecnologia em si, o processo de leitura e de gravação funciona por meio de uma ca-
beça magnética de cada dispositivo. Ela é a responsável por detectar a magnetização dos discos en-
quanto altera o padrão de giros, gravando as informações.

Armazenamento Magneto-óptico

Nesse caso, falamos da junção dos dois tipos de armazenamento de dados mencionados anterior-
mente, que são considerados mídias portáteis duráveis e com grande capacidade de armazena-
mento, já que a superfície delas permite gravar dados mais de uma vez.

A principal vantagem desse modelo é a possibilidade de acesso não linear. Assim, fica mais difícil
apagar esses dados, o que torna essas mídias mais seguras.

Os CDs e DVDs regraváveis são um exemplo popular dessa aplicação, assim como o WORM, que,
apesar de não ser regravável, é versátil por oferecer leitura infinita dos dados armazenados.

Armazenamento Eletrônico

WWW.DOMINACONCURSOS.COM.BR 4
ARQUIVO DIGITAL

Também conhecido como memória em estado sólido, o armazenamento eletrônico é composto ape-
nas por circuitos. Ou seja, a leitura e a gravação dos dados não demandam nenhum tipo de movi-
mento. Logo, não há a necessidade de um feixe de luz passando pela superfície, por exemplo.

Como resultado, tem-se dispositivos menores e mais leves, como é o caso do SSD em relação aos
HD.

Além disso, temos os famosos pendrives ou Memória USB Flash Drive e Cartões SD, SDHC e SDXC,
que atualmente são alguns dos mais utilizados.

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

WWW.DOMINACONCURSOS.COM.BR 5
MODELO OSI

Modelo OSI

Quando fazemos uma requisição para um servidor web, essa percorre um longo caminho da sua má-
quina até o servidor. Essa requisição que saí do seu computador por um cabo de rede, ou pelo ar, caso
use um Wi-Fi. Passa pelo seu provedor de internet e por diversos outros servidores até chegar no
destino. Quando o servidor manda uma resposta, esse caminho se repete.

Mas como a requisição sabe qual caminho seguir? Como ela sai do meu computador e chega ao ser-
vidor?

O processo de enviar uma requisição para um servidor é parecido com o de enviar um pacote pelos
correios, isto é, os pacotes enviados pelo computador passam por algumas etapas até chegar ao des-
tino final. Esses passos são o que chamamos de modelo OSI.

Conhecendo o Modelo OSI

O modelo OSI é um padrão para os protocolos de rede. Protocolos nada mais são do que regras de
comunicação usadas para conectar dois ou mais computadores. O que o modelo OSI faz é agrupar
esses protocolos em grupos específicos, ou camadas.

Camada 1 – Física

A primeira camada do modelo OSI é a camada física. Voltando para o exemplo dos correios, a camada
física seriam as estradas, ou seja, o caminho que os pacotes percorrem para chegar ao destino.

Nesta camada são especificados os dispositivos, como hubs e os meios de transmissão, como os ca-
bos de rede. Os dados são transmitidos por esses meios e processados na próxima camada.

Camada 2 – Enlace ou Ligação

Fazendo um paralelo com os correios, essa camada funciona como um fiscal. Ele observa se o pacote
tem algum defeito em sua formatação e controla o fluxo com que os pacotes são enviados.

Nesta camada, os dados recebidos do meio físico são verificados para ver se possuem algum erro e,se
possuírem, esse erro pode ser corrigido. Dessa forma, as camadas superiores podem assumir uma
transmissão praticamente sem erros. Esta camada também controla o fluxo que os dados são transmi-
tidos.

Nesta camadas que são definidas as tecnologias como as VLans, ou topologias como a Token ring, ou
a ponto-a-ponto. Também é nesta camada que dispositivos como os switches funcionam.

Esta camada é dividida em duas subcamadas: A camada MAC e a camada LLC.

A subcamada MAC

É nesta camada que possibilita a conexão de diversos computadores em uma rede. Cada máquina
conectada na rede tem um endereço físico, conhecido como endereço MAC. É esse endereço que a
camada utiliza para identificar e enviar os pacotes.

Essa camada atua como uma interface entre a camada física e a subcamada LLC.

Já a subcamada LLC

É nesta camada que temos o controle de fluxo dos dados na rede. É por conta dessa camada que
conseguimos ter vários protocolos da próxima camada convivendo dentro de uma mesma rede.

Camada 3 – Rede

Quando estamos enviando uma carta, os correios verificam quem é destinatário e quem é o remetente
da mensagem. Se existirem muitas mensagens para serem enviadas, eles podem priorizar quais serão
enviadas primeiro e qual é o melhor caminho para enviar essa carta.

WWW.DOMINACONCURSOS.COM.BR 1
MODELO OSI

Isso é justamente o que a camada 3 faz, ela atua como uma central dos correios. Esta é talvez a
camada mais atuante nas redes, principalmente na internet.

É nesta camada que temos o endereçamento IP de origem e de destino, ela também pode priorizar
alguns pacotes e decidir qual caminho seguir para enviar seus dados.

Essa camada basicamente controla o roteamento entre a origem e destino do pacote.

“Mas por que utilizar o endereço IP se já temos o endereço MAC?”

O endereço MAC é o endereço físico de quem envia o pacote. Ou seja, se enviarmos um pacote e esse
pacote passar por cinco dispositivos diferentes (roteadores, switches, ou servidores, por exemplo) o
endereço MAC é alterado no processo. Já o endereço IP não sofre essa alteração.

O endereço IP é a identificação da sua máquina na rede. É aquele endereço como 192.168.0.1.

É nessa camada que temos protocolos como o IP ou o ICMP.

Bem, as cartas chegaram a central dos correios, agora elas precisam ser transportadas.

Camada 4 – Transporte

Se na camada um temos as estradas e os caminhos que os dados percorrem, na camada quatro temos
os caminhões e os carteiros.

É esta camada que garante o envio e o recebimento dos pacotes vindos da camada 3. Ela gerencia o
transporte dos pacotes para garantir o sucesso no envio e no recebimento de dados.

Esta camada lida muito com a qualidade do serviço para que os dados sejam entregues com consis-
tência, isto é, sem erros ou duplicações. Porém nem todos os protocolos desta camada garantem a
entrega da mensagem.

Protocolos muito comuns dessa camada são os protocolos TCP e UDP. O primeiro garante a entrega
da mensagem, diferente do segundo. Por não garantir a entrega da mensagem, o protocolo UDP é um
pouco mais rápido que o TCP.

Bem, mas para ocorrer o transporte de um pacote entre os computadores, é necessário que as máqui-
nas consigam se comunicar. Isso é função da próxima camada.

Camada 5 – Sessão

Está camada é responsável por estabelecer e encerrar a conexão entre hosts. É ela quem inicia e
sincroniza os hosts.

Além de realizar o estabelecimento das sessões, esta camada também provém algum suporte a elas,
como registros de log e realizando tarefas de segurança.

Recebemos os pacotes, vamos checá-los para ver que dados tem dentro?

Ainda não podemos. Os dados ainda precisam ser tratados para serem usados. Como a camada de
sessão só é responsável por estabelecer a conexão entre os hosts, o tratamento dos dados é de res-
ponsabilidade da próxima camada.

Camada 6 – Apresentação

Está é a camada responsável por fazer a tradução dos dados para que a próxima camada os use.
Nesta camada temos a conversão de códigos para caracteres, a conversão e compactação dos dados,
além da criptografia desses dados, caso necessite.

Depois de tratados, esses dados estão prontos para serem usados na próxima camada.

WWW.DOMINACONCURSOS.COM.BR 2
MODELO OSI

Camada 7 – Aplicação

A última camada do modelo OSI é a camada para consumir os dados. Nesta camada temos os progra-
mas que garantem a interação humano-máquina. Nela conseguimos enviar e-mails, transferir arquivos,
acessar websites, conectar remotamente em outras máquinas, entre outras coisas.

É nesta camada que temos os protocolos mais conhecidos como o HTTP, FTP, além de serviços como
o DNS.

Quando falamos das camadas do modelo OSI, costumamos falar na ordem inversa, isto é, a camada
mais alta é a camada 7, enquanto que a camada 1 é a camada mais baixa:

Além do modelo OSI, outro modelo utilizado em redes é o TCP/IP. Esse modelo, que leva o nome de
dois protocolos, busca agrupar os protocolos da mesma forma que o modelo OSI, porém com menos
camadas.

Conhecer os protocolos é uma das skills de quem trabalha com infra. Não é necessário saber todos,
mas conhecer alguns pode ajudar na hora de resolver alguns problemas na rede.

Se quiser aprender um pouco mais sobre esses protocolos, temos aqui na Alura uma carreira de infra-
estrutura em redes.

Nela você aprenderá sobre os protocolos, como criar e configurar uma rede local, sobre VLans, além
de segurança.

Modelo de referência da ISO, tem como principal objetivo ser um modelo padrão para protocolos de
comunicação entre diversos tipos de sistema, garantindo a comunicação end-to-end, o Modelo OSI (em
inglês Open Systems Interconnection) foi lançado em 1984 pela Organização Internacional para a Nor-
malização (em inglês International Organization for Standardization).

Trata-se de uma arquitetura modelo que divide as redes de computadores em 7 camadas para obter
camadas de abstração. Cada protocolo realiza a inserção de uma funcionalidade assinalada a uma
camada específica.

Utilizando o Modelo OSI é possível realizar comunicação entre máquinas distintas e definir diretivas
genéricas para a elaboração de redes de computadores independente da tecnologia utilizada, sejam
essas redes de curta, média ou longa distância.

Este modelo exige o cumprimento de etapas para atingir a compatibilidade, portabilidade, interoperabi-
lidade e escalabilidade. São elas: a definição do modelo, definição dos protocolos de camada e a sele-
ção de perfis funcionais.

A primeira delas define o que a camada realmente deve fazer. A segunda faz a definição dos compo-
nentes que fazem parte do modelo, enquanto que a terceira é realizada pelos órgãos de padronização
de cada país.

WWW.DOMINACONCURSOS.COM.BR 3
MODELO OSI

O Modelo OSI é composto por 7 camadas, sendo que cada uma delas realizam determinadas funções.
As camadas são: Aplicação (Application), Apresentação (Presentation), Sessão (Session), Transporte
(Transport), Rede (Network), Dados (Data Link) e Física (Physical).

Este conceito de modelo baseado em sete camadas foi fornecido por Charles Bachman em um de seus
trabalhos. A evolução do projeto OSI começou a partir de experiência com a ARPANET, a Internet
incipiente, a NPLNET, o EIN, o CYCLADES e também com o trabalho em IFIP WG6.1. A partir daí, com
base neste modelo, um sistema de rede passou a ser dividido em camadas. Dentro de cada uma delas,
uma ou mais entidades se encarregavam de implementar sua funcionalidade.

Atualmente, a ISO trabalha em parceria com outra organização, a União Internacional de Telecomuni-
cações (em inglês International Telecommunications Union), publicando diversas especificações de
protocolos que tem como base a arquitetura OSI.

Camada Física

Camada inferior do modelo OSI, está encarregada da transmissão e recepção do fluxo de bits brutos
não estruturados através de um meio físico. Ela descreve as interfaces eléctricas/ópticas, mecânicas e
funcionais com o meio físico e transporta os sinais para todas as camadas superiores. Cabos Ethernet
e de fibra óptica operam na camada 1.

Camada de Vínculo de Dados ou Enlace

Esta camada proporciona uma transferência de quadros de dados sem erros de um nó para outro
através da camada física, permitindo que as camadas acima dela assumam a transmissão praticamente
sem erros através do vínculo.

Camada de Rede

A camada de rede controla a operação da sub-rede, decidindo que caminho físico os dados devem
seguir com base nas condições da rede, na prioridade do serviço e em outros fatores. É o lugar onde
a parte "IP” de “TCP/IP” acontece. Ela fornece o roteamento de quadros entre redes, controle de tráfego
da sub-rede: roteadores podem instruir uma estação de envio a “desacelerar” sua transmissão de qua-
dros quando o buffer do roteador ficar cheio, entre outros.

Camada de Transporte

Esta camada garante que as mensagens sejam entregues sem erros, em sequência e sem perdas ou
duplicações. Ela elimina para os protocolos de camadas superiores qualquer preocupação a respeito
de transferência de dados entre eles seus pares. O tamanho e a complexidade de um protocolo de
transporte depende do tipo de serviço que ele pode obter da camada de rede. Para uma camada de
rede confiável com capacidade de circuito virtual, uma camada de transporte mínima é necessária. Se
a camada de rede não for confiável ou apenas tiver suporte para datagramas, o protocolo de transporte
deverá incluir procedimentos externos de detecção e recuperação de erros.

WWW.DOMINACONCURSOS.COM.BR 4
MODELO OSI

Camada de Sessão

Esta camada é responsável por iniciar e encerrar conexões de rede. Exemplos da camada de sessão
são as funções do RPC (Remote Procedure Call) e a parte de login de uma sessão SQL.

Camada de Apresentação

Esta camada formata os dados a serem apresentados na camada de aplicativo. Ela pode ser conside-
rada o tradutor da rede. Pode converter dados de um formato usado pela camada de aplicativo ou
aplicação em um formato comum na estação de envio e, em seguida, converter esse formato comum
em um formato conhecido pela camada de aplicativo na estação de recepção.

Camada de Aplicativo ou Aplicação

Serve como janela onde os processos de aplicativos e usuários podem acessar serviços de rede. Essa
camada contém uma variedade de funções normalmente necessárias. É aqui que encontramos, Telnet,
FTP, SMTP e tantos outros.

A maioria das literaturas cita o modelo a partir da camada de Aplicação, mas pessoalmente acho mais
lógico iniciar pela camada Física, onde é iniciado o processo.

Obs.: a camada superior só entende os dados porque a camada inferior os formata para um formato
comum, inteligível para as duas atuantes no processo, como mostrado a seguir.

Camada Física

Como citei o anteriormente, é onde se inicia o todo processo. O sinal que vem do meio (cabos UTP por
exemplo), chega à camada física em formato de sinais elétricos e se transforma em bits (0 e 1). Como
no cabo navega apenas sinais elétricos de baixa frequência, a camada física identifica um bit de valor
“0” como 0 sinal elétrico de –5 volts, e identifica um bit de valor “1” como 0 sinal elétrico com +5
volts. Vejam na figura abaixo o exemplo com a senoide.

A camada física trata coisas tipo distância máxima dos cabos (por exemplo no caso do UTP onde
são 90m), conectores físicos (tipo BNC do coaxial ou RJ45 do UTP), pulsos elétricos (no caso de cabo
metálico) ou pulsos de luz (no caso da fibra ótica), etc.

Resumindo, ela recebe os dados e começa o processo, ou insere os dados finalizando o processo, de
acordo com a ordem. Podemos associá-la a cabos e conectores, para ajudar na semântica. Exemplo
de alguns dispositivos que atuam na camada física são os hubs, tranceivers, cabos, etc. Sua PDU são
os BITS.

Camada de Enlace

WWW.DOMINACONCURSOS.COM.BR 5
MODELO OSI

Após a camada física ter formatado os dados de maneira que a camada de enlace os entenda, inicia-
se a segunda parte do processo. Um aspecto interessante é que a camada de enlace já entende um
endereço, o endereço físico (MAC Address – Media Access Control ou Controle de acesso a mídia) –
a partir daqui sempre que nos referirmos a endereço físico estamos falando do MAC “Address”.

Sem querer sair do escopo da camada, acho necessária uma breve idéia a respeito do MAC. MAC
address é um endereço Hexadecimal de 48 bits, tipo FF-C6-00-A2-05-D8.

Na próxima parte do processo de intercâmbio entre as camadas do OSI, quando o dado é enviado à
camada de rede pela camada de enlace, esse endereço vira endereço IP (ou seja, o MAC se converte
num IP).

/* lembremos que tanto um endereço MAC quanto um IP nunca se repetem, nunca mesmo */

Uma curiosidade, é que o MAC address possui a seguinte composição:

A camada de enlace trata as topologias de rede, dispositivos como switch, placa de rede, interfaces,
etc., e é responsável por todo o processo de switching.

Após o recebimento dos bits, ela os converte de maneira inteligível (converte de bit para byte, por
exemplo), os transforma em unidade de dado, subtrai o endereço físico e encaminha para a camada
de rede que continua o processo. Sua PDU é o QUADRO.

Camada de Rede

Pensando em WAN, é a camada que mais atua no processo. A camada 3 é responsável pelo tráfego no
processo de internetworking. A partir de dispositivos como roteadores, ela decide qual o melhor cami-
nho para os dados no processo de interconexão, bem como estabelecimento das rotas.

A camada 3 já entende o endereço físico, que o converte para endereço lógico (o endereço IP). Exem-
plo de protocolos de endereçamento lógico são o IP e o IPX. A partir daí a PDU da camada de enlace,
o quadro, se transforma em unidade de dado de camada 3.

Exemplo de dispositivo atuante nessa camada é o Roteador, que sem dúvida é o principal agente no
processo de internetworking; é este que determina as melhores rotas baseados nos seus critérios, en-
dereça os dados pelas redes, e gerencia suas tabelas de roteamento. A PDU da camada 3 é o PA-
COTE.

Camada de Transporte

A camada de transporte é responsável pela qualidade na entrega/recebimento dos dados. Após os da-
dos já endereçados virem da camada 3, é hora de começar o transporte dos mesmos.

A camada 4 gerencia esse processo, para assegurar de maneira confiável o sucesso no transporte dos
dados, por exemplo, um serviço bastante interessante que atua de forma interativa nessa camada é o
Q.O.S ou Quality of Service (Qualidade de Serviço), que é um assunto bastante importante é funda-
mental no processo de internetworking, e mais adiante vou aborda-lo de maneira bem detalhada.

Então, após os pacotes virem da camada de rede, já com seus “remetentes/destinatários”, é hora de
entrega-los, como se as cartas tivessem acabados de sair do correio (camada 3), e o carteiro fosse as

WWW.DOMINACONCURSOS.COM.BR 6
MODELO OSI

transportar (camada 4). Junto dos protocolos de endereçamento (IP e IPX), agora entram os protocolos
de transporte (por exemplo, o TCP e o SPX). A PDU da camada 4 é o SEGMENTO.

Camada de Sessão

Após a recepção dos bits, a obtenção do endereço, e a definição de um caminho para o transporte, se
inicia então a sessão responsável pelo processo da troca de dados/comunicação.

A camada 5 é responsável por iniciar, gerenciar e terminar a conexão entre hosts. Para obter êxito no
processo de comunicação, a camada de sessão tem que se preocupar com a sincronização en-
tre hosts, para que a sessão aberta entre eles se mantenha funcionando.

Exemplo de dispositivos, ou mais especificamente, aplicativos que atuam na camada de sessão é o


ICQ, ou o MIRC. A partir daí a camada de sessão e as camadas superiores vão tratar como PDU
os DADOS.

Camada de Apresentação

A camada 6 atua como intermediaria no processo frente às suas camadas adjacentes. Ela cuida da
formatação dos dados, e da representação destes, e ela é a camada responsável por fazer com que
duas redes diferentes (por exemplo, uma TCP/IP e outra IPX/SPX) se comuniquem, “traduzindo” os
dados no processo de comunicação.

Alguns dispositivos atuantes na camada de Apresentação são o Gateway, ou os Traceivers, sendo que
o Gateway no caso faria a ponte entre as redes traduzindo diferentes protocolos, e o Tranceiver traduz
sinais por exemplo de cabo UTP em sinais que um cabo Coaxial entenda.

Camada de Aplicação

A camada de aplicação e a que mais notamos no dia a dia, pois interagimos direto com ela através de
softwares como cliente de correio, programas de mensagens instantâneas, etc.

Do ponto de vista do conceito, na minha opinião a camada 7 e basicamente a interface direta para
inserção/recepção de dados. Nela é que atuam o DNS, o Telnet, o FTP, etc. E ela pode tanto iniciar
quanto finalizar o processo, pois como a camada física, se encontra em um dos extremos do modelo.

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

WWW.DOMINACONCURSOS.COM.BR 7
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Modos de Endereçamento

O 68000 apresenta quatorze modos de endereçamento distintos, agrupados em seis modos básicos.
Estes modos básicos são absolutos, imediato, direto a registrador, indireto a registrador, relativo a pc
e implícito.

No modo de endereçamento absoluto o operando está no endereço especificado na própria instrução.


Por exemplo, a instrução

Move.w 1000, d1

Copia o conteúdo da palavra (dois bytes) na posição de memória para o registrador de da-
dos d1. Na codificação desta instrução há duas possíveis variantes. Se o endereço absoluto pode ser
representado em dois bytes, então o modo absolute short pode ser utilizado. Caso contrário, quatro
bytes deverão ser utilizados (modo absolute long).

Observe que está informação não está contida na instrução -- o.w na instrução refere-se ao tamanho
do operando, e não de seu endereço. Neste texto, quando não explicitado de outra forma serão utili-
zados quatro bytes para endereços absolutos.

No modo de endereçamento imediato o valor do operando está incorporado à instrução, sendo prece-
dido pelo símbolo #. Por exemplo, a instrução

Addq.l #2,a0

Soma o valor 2 ao conteúdo do registrador de endereço a0.

No modo de endereçamento direto a registrador o operando é o conteúdo de um registrador especifi-


cado na instrução. Por exemplo, para mover o conteúdo do registrador de dados d0 para o registrador
de dados d1

Move.w d0,d1

Há duas variantes deste modo de endereçamento, direto a registrador de dados dn ou direto a regis-
trador de endereços an.

No modo de endereçamento indireto a registrador o operando está no endereço contido em um regis-


trador de endereços especificado na instrução. Por exemplo, a instrução

Move.w (a0),d1

Move o conteúdo da palavra na posição de memória cujo endereço está no registrador a0 para o re-
gistrador de dados d1.

Este modo de endereçamento indireto oferece variantes com pós-incremento, pré-decremento, com
deslocamento e indexado. O modo de endereçamento indireto a registrador com pós-incremento per-
mite incrementar o valor do registrador de endereços após o acesso ao valor corrente do registrador.
Por exemplo, a instrução

Move.w (a0)+,d1

Move o conteúdo da palavra cujo endereço é o conteúdo do registrador de endereços a0 para o regis-
trador de dados d1 e incrementa o valor de a0 de 2 (o tamanho de uma word). Assim, esta única ins-
trução equivale à seqüência de instruções

Move.w (a0),d1

Addq.l #2,a0

O modo de endereçamento indireto a registrador com pré-decremento é similar a este modo, sendo
que neste caso o conteúdo do registrador de endereços é decrementado antes do acesso ao seu
conteúdo. Assim, a instrução

WWW.DOMINACONCURSOS.COM.BR 1
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Move.w -(a0),d1

Equivaleria a

Subq.l #2,a0

Move.w (a0),d1

No modo de endereçamento indireto a registrador com deslocamento, é possível especificar na ins-


trução um valor constante que deve ser adicionado ao conteúdo corrente do registrador de endere-
ços. O deslocamento é uma constante representável em 16 bits com sinal. Assim, a instrução

Move.w 32(a0),d1

Irá adicionar 32 ao conteúdo de a0 para obter o endereço da palavra que deverá ser carregada no
registrador d1, sendo que o conteúdo de a0 permanecerá inalterado. A título de ilustração, a imple-
mentação desta instrução caso este modo de endereçamento não fosse suportado iria requerer a uti-
lização de outro registrador para armazenagem temporária. Supondo que o registrador a6 fosse utili-
zado para este fim, então a instrução acima equivaleria a

Movea.l a0,a6

Addi.l #32,a6

Move.w (a6),d1

O modo de endereçamento indireto a registrador pode ser também indexado. Este é similar ao modo
com deslocamento, sendo que além de se adicionar uma constante ao registrador de endereços é
possível especificar um registrador de dados cujo conteúdo também será acrescentado ao conteúdo
do registrador de endereços para a obtenção do endereço efetivo do operando. Por exemplo, a instru-
ção

Move.w 16(a0,d0.w),d1

Equivaleria a

Movea.l a0,a6

Adda.l d0,a6

Addi.l #16,a6

Move.w (a6),d1

Novamente utilizando a6 como um registrador temporário.

No modo de endereçamento relativo ao pc o operando é especificado tendo por base o conteúdo cor-
rente do registrador contador de programa.

Há duas variantes possíveis para este modo de endereçamento, com deslocamento ou indexado, am-
bos similares aos modos equivalentes descritos no modo de endereçamento indireto a registrador de
endereços. Por exemplo,

Move.w 16(pc),d1

Adiciona 16 ao conteúdo corrente do registrador pc para obter o endereço efetivo da palavra fonte
cujo conteúdo será copiado para d1. É importante observar que o valor corrente do pc não corres-
ponde ao endereço da palavra da instrução que contém o código de operação, mas sim à palavra de
extensão (que contém o deslocamento). Esta forma de endereçamento é muito importante na defini-
ção de códigos independentes de posição.

WWW.DOMINACONCURSOS.COM.BR 2
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

No modo de endereçamento implícito o operando não está especificado na instrução. Por exemplo,
todas instruções de desvio da forma branch referem-se implicitamente ao valor corrente do registra-
dor pc.

Tipos de Modos de Endereçamento em Computadores

Memória de acesso aleatório, ou ram, é a memória principal de um computador. Os aplicativos são


carregados e executados na memória ram. Modos de endereçamento alocar ram em porções que po-
dem ser referenciados individualmente para que a unidade central de processamento, ou cpu, pode
determinar qual posição de memória está sendo usado por uma instrução de máquina. Modo de en-
dereçamento imediato

O modo imediato é a forma mais simples de endereçamento. O operando é parte da instrução e, por-
tanto, nenhuma referência de memória, além de instruções, é necessária para recuperar o operando.
Este modo é rápido e pode ser utilizado para definir constantes ou definir os valores das variáveis
iniciais. Este modo tem um alcance limitado, pois é limitado ao tamanho do campo de endereço, o
que para a maioria dos conjuntos de instruções é pequeno comparado com o comprimento da pala-
vra.

Modo de Endereçamento Direto

< p > no modo direto, o campo de endereço contém o endereço do operando. Ela exige uma única
referência de memória para ler o operando a partir de uma dada localização. No entanto, ele fornece
apenas um espaço de endereçamento limitado.
Indireta modo de endereçamento

No modo indireto, a célula de memória apontada pelo campo de endereço contém o endereço (pon-
teiro ) o operando , o que por sua vez, contém o endereço completo do operando. Este modo tem um
grande espaço de endereço, ao contrário direta e imediata de endereçamento, mas porque os aces-
sos de memória múltipla são obrigados a encontrar o operando é mais lento.
Register modo de endereçamento

Registrar modo é similar ao modo direto. A principal diferença entre os dois modos é que o campo de
endereço da instrução refere-se a um registo em vez de uma posição de memória. Registre-se abor-
dar não tem um endereço efetivo. Três ou quatro bits são usados como o campo de endereço para
fazer referência a registros.

Register Indirect Modo De Endereçamento

Este modo é semelhante ao endereçamento indireto. O operando é em uma célula de memória apon-
tada por conteúdo de um registo. O registo contém o endereço efetivo do operando. Este modo usa
menos um acesso à memória de endereçamento indireto. Este modo tem um espaço de endereço
grande, mas ela é limitada à largura dos registros disponíveis para armazenar o endereço efetivo.
Deslocamento dirigindo modo

Deslocamento consiste em 3 variações:

Abordando relativa

Endereçamento registrador base

Indexação abordando

Este modo pode ser considerado uma combinação de direto. E registrar endereçamento indireto. O
endereço tem dois valores:

Valor base e um registo que contém um deslocamento inteiro que é adicionado ou subtraído da base
para formar o endereço efetivo na memória
stack modo de endereçamento
modo

WWW.DOMINACONCURSOS.COM.BR 3
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Pilha, também conhecido como implícito endereçamento, consiste de um conjunto linear de locais re-
feridos como último a entrar primeiro a sair da fila. O operando está no topo da pilha. O ponteiro da
pilha é um registro que armazena o endereço do topo da pilha local.

Cada variável possui uma área de armazenamento amarrada a si Durante a execução do programa,
e o seu o tempo de vida é o período de tempo no qual a amarração existe. Esta área de armazena-
mento é usada para guardar o valor codificado da variável. O termo objeto de dado é usado para refe-
rencia à área de armazenamento em conjunto com o valor da variável. Então o objeto de dado se re-
fere ao valor da variável e a área de armazenamento utilizada.

Desta forma, um objeto de dado é definido por (L, N, V, T), onde L é a localização (endereço de me-
mória), N o nome da variável, V o valor da variável e T o tipo de objeto (inteiro, decimal, caracteres,
lógico, etc). Todos estes componentes devem ser amarrados.

A figura abaixo mostra a visualização de um objeto de dado e suas amarrações, que são representa-
das por linhas que vão do objeto de dado aos objetos correspondentes aos quais são amarrados.

Localizações virtuais de armazenamento disponíveis na memória do computador.

A vantagem de se usar uma linguagem fortemente tipada é que qualquer erro de incompatibilidade de
tipo consegue ser verificado em tempo de compilação e pode, portanto, ser corrigido antes do pro-
grama ser executado.

Linguagens fracamente tipadas dão maior liberdade, porém não fazem verificação estática, em tempo
de compilação, e, portanto, podem ocorrer erros de conversão de tipos em tempo de execução, ge-
rando problemas inesperados.

Na prática erros de conversão de tipo devem ser tratados adequadamente, veremos isso na próxima
aula.s nomes possíveis que podem ser dados aos objetos de dados. E finalmente, o espaço de ti-
pos é o conjunto de todos os tipos de dados possíveis que podem ser amarrados a um objeto de
dado.

Os Tipos de Dados

Programas de computador podem ser vistos como funções que devem ser aplicadas a certos dados
de entrada com objetivo de produzir determinados resultados. Essas funções, por sua vez, possuem
uma sequência de instruções que produzem dados intermediários que são armazenados em variáveis
de programa.

Existem diferenças básicas de uma LP para outra quanto às espécies de dados que usam, às espé-
cies de operações disponíveis sobre os dados e à maneira como os dados podem ser estruturados e
usados.

As LP geralmente fornecem um conjunto fixo de tipos de dados elementares (ou embutidos), e meca-
nismos para definição de tipos de dados mais complexos a partir dos elementares, tais como tipos de
dados estruturados.

WWW.DOMINACONCURSOS.COM.BR 4
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Todas as LP possuem tipos elementares, cujos valores são atômicos, e tipos agregados, que consis-
tem numa composição dos tipos elementares. Algumas linguagens também possuem tipos recursi-
vos, cujos valores podem ser compostos de outros valores do mesmo tipo.

Os tipos de dados elementares são aqueles que contêm somente um único valor de dado e sobre o
qual são definidas algumas operações. Também são conhecidos como tipos de dados escalares.
Este tipo de dado é sempre manipulado como uma unidade e não pode ser decomposto em valores
mais simples.

Assim, os inteiros podem ser encarados como o conjunto de valores..., -2, -1, 0, 1, 2,... que podem
ser manipulados pelos operadores familiares +, -, * e /. Na verdade, inteiros e reais são suportados
por hardware na maioria dos computadores convencionais, que também fornecem aritmética de
ponto fixo e ponto flutuante.

Existem tipos de dados elementares similares em diferentes LP com diferentes nomes. Por exemplo:
Pascal tem os tipos Boolean, Integer e Real; ML tem os tipos bool, int e real; e C++ tem os tipos bool,
int e float. Os nomes não têm muito significado, o que é importante notar é que cada um dos tipos
mais comuns, tais como boolean, inteiro, real e caracter, são definidos na implementação; isto signi-
fica que eles possuem um conjunto de valores que podem ser definidos diferentemente por cada im-
plementação da LP.

Por exemplo, inteiros consistem num intervalo de todos os números possíveis e reais são um subcon-
junto dos números reais. Também existem limitações de hardware, uma vez que os computadores
fornecem tamanhos diferentes para os tipos aritméticos suportados. Na linguagem C isto pode ser ob-
servado pelos prefixos long e short nas declarações de int e float.

Importante:

Cabe ao programador saber identificar o tipo de dado mais adequado à informação que será lida, pro-
cessada ou gerada pelo programa.

O uso incorreto de um tipo de dado pode acarretar em perda de informação ou em erros de lógica di-
fíceis de detectar e que geralmente são detectados apenas quando o programa já está em uso há um
bom tempo em produção.

Por isso, é muito importante ao programador conhecer os tipos de dado de cada linguagem de pro-
gramação e os limites de valores, de tamanho, de precisão de casas decimais para cada tipo de
dado. No caso específico de tipos numéricos, é muito importante estar atento aos limites e intervalo
de valores que cada tipo de dado suporta na linguagem de programação que está sendo utilizada.

Tipos Elementares Enumerados

Em Pascal, Ada, C e Java é possível um novo tipo elementar através da enumeração dos seus valo-
res, mais precisamente, através da enumeração de identificadores que irão denotar seus valores. Tal
tipo é chamado de enumeração. Considere a definição do seguinte tipo em C e Pascal, respectiva-
mente:

Em C um tipo enumerado pode ser declarado assim: enum Month {jan, feb, mar, apr, may, jun, jul,
aug, sep, oct, nov, dec};

Em Pascal um tipo enumerado pode ser declarado assim: type Month = (jan, feb, mar, apr, may,
jun, jul, aug, sep, oct, nov, dec)

Em Java um tipo enumerado pode ser declarado assim: public enum SituacaoIntimacaoEnum {

ABERTA(1, "Aberta"),

REEMITIDA(2, "Reemitida"),

CANCELADA(3, "Cancelada"),

CONCLUIDA(4, "Concluida")

WWW.DOMINACONCURSOS.COM.BR 5
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

private Integer codigo;

private String descricao;

private SituacaoIntimacaoEnum(Integer codigo, String descricao) {

this.codigo = codigo;

this.descricao = descricao;

Este tipo de dado é utilizado para representar um numero finito de elementos de um mesmo tipo de
dado e está presente na maioria das linguagens de programação. O componente de um vetor pode
de um tipo de dado elementar com um tipo de dado agregado.

public static SituacaoIntimacaoEnum valueOf(Integer codigo) {

for (SituacaoIntimacaoEnum a : values()) {

if (codigo.equals(a.codigo)) {

return a;

throw new IllegalArgumentException("Nao existe Situacao de Intimacao com codigo " + codigo);

}}

Importante: O uso de tipos enumerados é sempre recomendado pois eles permitem aumentar a cla-
reza e legibilidade de um programa. Usamos tipos enumerados em situações em que temos um con-
junto de valores possíveis para uma variável. Por exemplo, estado civil (casado, solteiro, divorciado,
viúvo), grau de instrução (fundamental, secundário, superior ), sexo (masculino e feminino ) e situa-
ção do aluno (aprovado, reprovado, recuperação ) são alguns exemplos de informações que pos-
suem um conjunto de valores que pode ser representado por uma enumeração. Veja um exemplo
abaixo de uso de enumeração:

if (intimacao.getCsSituacao().equals(SituacaoIntimacaoEnum.CANCELADA.getCodigo()) ) {

excecaoNegocio.addMessage(

"intimacao.validacao.intimacaoCancelada",

"intimacao.validacao.intimacaoCancelada");

Com certeza o trecho de código acima é mais legível do que se fosse escrito sem o uso de enumera-
ção conforme abaixo

if (intimacao.getCsSituacao().equals(3) ) {

excecaoNegocio.addMessage(

"intimacao.validacao.intimacaoCancelada",

"intimacao.validacao.intimacaoCancelada");

Os tipos de dados agregados são aqueles cujos valores são compostos ou estruturados a partir dos
tipos elementares. Os objetos de dados que fazem parte de um tipo agregado são chamados de com-
ponentes. Cada componente pode ser um tipo de dado elementar ou agregado. Os tipos de dados
agregados possuem um único nome, mas a manipulação pode ser feita no objeto como um todo ou
em um componente de cada vez através de uma operação adequada de seleção.

WWW.DOMINACONCURSOS.COM.BR 6
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Na linguagem Pascal temos o tipo Record que representa um agregado de campos que podem ser
de tipo elementar ou de outro tipo record. Como podemos ver nos exemplos abaixo:

type POLIGONO: record

num_lados: integer;

comprimento_lado: real;

end;

type DATA: record

ano: integer;

mes: interger;

dia: integer;

end;

type PEDIDO: record

numero : integer;

dataPedido : DATA;

valor : real;

cpf : integer;

end;

Na linguagem C temos o tipo Struts que representa uma estrutura heterogênea de dados de diferen-
tes tipos, podendo ser tipo elementar ou outro tipo Struts. Vamos ver o exemplo abaixo:

struct POLIGONO {

int num_lados;

float comprimento_lado;

TIpos de dado com Mapeamento Finito

Uma representação convencional de mapeamento finito consiste em alocar um certo número de ele-
mentos (por exemplo, palavras) para cada componente. As linguagens de programação implementam
o mapeamento finito através do uso de vetores. As declarações em C e Pascal float a[10]; var a: array
[1.. 10] of real podem ser vistas como um mapeamento do intervalo de inteiros entre 0 e 9, e 1 e 10,
respectivamente em C e

Pascal, no conjunto dos reais.

var a array [1..5] of array [1..10] of real;

var a array[1..5,1..10] of real;

Este tipo de dado é utilizado para representar um numero finito de elementos de um mesmo tipo de
dado e está presente na maioria das linguagens de programação. O componente de um vetor pode
de um tipo de dado elementar com um tipo de dado agregado

A seleção de um componente do vetor é feita através de indexação, isto é, fornecendo como índice
um valor apropriado no domínio de elementos possíveis do vetor. Assim, por exemplo, o elemento do
vetor “a”, mapeado pelo valor “i” no domínio, seria denotado por “a[i]”

WWW.DOMINACONCURSOS.COM.BR 7
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Linguagens que interpretam um vetor multidimensional como uma composição de mapeamentos,


mas permitem uma definição condensada, obrigam que a seleção de um elemento seja feita de ma-
neira compatível com a forma de sua definição.

Por exemplo, para um vetor com duas dimensões, o elemento mapeado pelo primeiro índice com
um valor “i” especifica a linha e o segundo com um valor “j” especifica a coluna seria “a[i][j]” ou “a[i,j]”,
dependendo de como foi declarado. Deve-se ter muito cuidado ao fazer a indexação, pois, indexar
com um valor fora do domínio resulta em um erro que usualmente só pode ser detectado em tempo
de execução.

Tipo de dado Sequências (Strings )

Uma sequência consiste em um número qualquer de ocorrências ordenadas de dados de um certo


tipo. Este mecanismo de estruturação tem a propriedade importante de deixar em aberto o número de
ocorrências do componente e, portanto, requer que a implementação subjacente seja capaz de arma-
zenar objetos de tamanho arbitrário.

Em outras palavras, objetos criados por sequência devem possuir um tamanho variável, ou seja,
são dinâmicos. Para evitar o problema da alocação dinâmica de memória algumas linguagens de pro-
gramação exigem que seja definido o tamanho de uma variável string em sua declaração.

Arquivos sequenciais são um exemplo deste mecanismo. Quando uma linguagem de programação
faz a leitura de um arquivo sequencial na verdade está lendo uma sequencia de caracteres. Nestes
casos o tamanho do registro, que deve ser conhecido pelo programador, permite que seja feito o tra-
tamento adequado a cada registro do arquivo, delimitando o inicio e fim de cada registro e obtendo os
valores dos campos.

Outra implementação usual corresponde aos strings, no qual o tipo do componente é o carácter. Em
outras palavras, strings são apenas vetores de caracteres. Como já foi falado acima, os strings imple-
mentados nas linguagens nem sempre são dinâmicos ou possuem tamanho arbitrário. Muitas lingua-
gens exigem que em sua definição seja especificado um tamanho, podendo esse tamanho ser inter-
pretado como o número máximo ou o número constante de caracteres que o string pode ter.

A linguagem Java não exibe que se informe o tamanho de um String e portanto faz uso de alocação
dinâmica, em tempo de execução. Já a linguagem Pascal exige que seja informado o tamanho do
String, fazendo uso de alocação estática, em tempo de compilação.

Programas que fazem uso de alocação dinâmica possuem desempenho ligeiramente inferior ao de
programas que fazem uso apenas de alocação estática.

Entretanto, dependendo do projeto do programa, nem sempre é possível determinar antecipadamente


o tamanho de um String e portanto em alguns casos particulares o uso de alocação dinâmica é ne-
cessário para se obter maior flexibilidade no tratamento do string

As operações convencionais sobre strings incluem concatenação, seleção de um componente ou ex-


tração de um substring especificando-se as posições do primeiro e do último carácter desejado. A
maioria das linguagens de programação possuem funções embutidas para suporte a estas opera-
ções.

A vantagem de se usar uma linguagem fortemente é que qualquer erro de incompatibilidade de tipo
consegue ser verificado em tempo de compilação e pode portanto ser corrigido antes do programa
ser executado.

Linguagens fracamente tipadas dão maior liberdade porém não fazem verificação estática, em tempo
de compilação, e portanto podem ocorrer erros de conversão de tipos em tempo de execução, ge-
rando problemas inesperados. Na prática erros de conversão de tipo devem ser tratados adequada-
mente, veremos isso na próxima aula.

É difícil abstrair um comportamento comum aos exemplos de sequências fornecidos pelas LP.
Por exemplo, Pascal e C tratam strings como vetores de caracteres, sem operações primitivas especi-
ais para sua manipulação.

WWW.DOMINACONCURSOS.COM.BR 8
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Já PL/I e Ada fornecem operações primitivas para manipulação de strings, mas, para reduzir o pro-
blema de alocação dinâmica de memória, exigem que o tamanho máximo de um string seja especifi-
cado na sua declaração

Verificação de Tipos de Dados

Uma linguagem que permite que todos os testes de tipo sejam efetuados estaticamente, é dita forte-
mente tipada. Neste caso, o compilador pode garantir a ausência de erros de tipo nos programas.
Java é um exemplo de uma linguagem fortemente tipada, já o Pascal não é uma linguagem forte-
mente tipada, pois, por exemplo, em Pascal intervalos e o emprego correto dos registros com varian-
tes não podem ser testados estaticamente.

As regras de compatibilidade de tipos, por sua vez, devem dar uma especificação exata de como
o mecanismo de testes de tipos deve ser aplicado. É possível definir duas noções de compatibilidade
de tipos:

- Equivalência nominal: duas variáveis possuem tipos compatíveis se possuem o mesmo nome de
tipo, definido pelo usuário ou primitivo, ou se aparecem na mesma declaração.

- Equivalência estrutural: duas variáveis possuem tipos compatíveis se possuem a mesma estrutura.
Para se verificar a equivalência estrutural, os nomes dos tipos definidos pelo usuário são substituídos
pelas suas definições. Este processo é repetido até não sobrarem mais nomes de tipos definidos pelo
usuário.

Os tipos são então considerados estruturalmente equivalentes se possuem exatamente a mesma


descrição, isto é, possuem o mesmo número de elementos, com mesmo tipo de dado para cada ele-
mento e com os elementos definidos na mesma ordem. A Equivalência estrutural é verificada princi-
palmente para tipos definidos pelo usuário como é o caso de tipos agregados.

Importante! A vantagem de se usar uma linguagem fortemente é que qualquer erro de incompatibili-
dade de tipo consegue ser verificado em tempo de compilação e pode, portanto, ser corrigido antes
do programa ser executado.

Linguagens fracamente tipadas dão maior liberdade, porém não fazem verificação estática, em tempo
de compilação, e, portanto, podem ocorrer erros de conversão de tipos em tempo de execução, ge-
rando problemas inesperados. Na prática erros de conversão de tipo devem ser tratados adequada-
mente, veremos isso na próxima aula.

Para ilustrar as regras de compatibilidade de tipos considere o segmento de código a seguir escrito
numa LP hipotética:

type s1 is struct {

int y;

int w;

};

type s2 is struct {

int y;

int w;

};

type s3 is struct {

int y;

};

WWW.DOMINACONCURSOS.COM.BR 9
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

s3 func(s1 z) {... };

...

s1 a, x;

s2 b;

s3 c;

int d;

...

Vamos analisar o trecho de código abaixo:

a = b; --(1) // Errado pois a e b são variáveis de tipos diferentes, s1 e s2.

x = a; --(2) // Ok pois são variaveis do mesmo tipo de dado s

c = func(b); --(3) // Errado pois b é do tipo de dado s2 e no entanto a função func espera um parâme-
tro do tipo s1.

d = func(a); --(4) // Errado pois d é do tipo inteiro e portanto é incompatível com o tipo de retorno da
função func que é s3.

Importante! É muito importante sempre se certificar de que se está trabalhando com variaveis de
mesmo tipo ou que seja possível efetuar a conversão de um tipo para o outro sem perda de informa-
ção.

Conversão de Tipos de Dados

Por conta da incompatibilidade de tipos de dado, frequentemente é necessário converter um valor de


um tipo de dado em um valor de outro tipo de dado, como, por exemplo, quando se quer somar uma
variável inteira à uma constante real.

Na maior parte das linguagens essa conversão é implícita. A conversão implícita é tornada explícita
pelo tradutor, que gera código para conversão baseado no tipo dos operadores e na hierarquia de ti-
pos da linguagem. Esta conversões automáticas, seguindo a terminologia do Algol 68, são chamadas
de coerção.

Entretanto, algumas linguagens permitem apenas a conversão explícita, isto é, o programador deve
usar operadores de conversão.

Em geral, o tipo de coerção que pode ocorrer em um determinado ponto depende do contexto. Por
exemplo, na seguinte instrução em C:

x=x+z

onde “z” é um float e “x” é um int, há uma coerção de “x” para float para avaliar a aritmética do opera-
dor de soma, e há uma coerção do resultado para int para fazer a atribuição. Pode-se observar, en-
tão, que o C fornece um Sistema simples de coerção. Além disso, conversões explícitas podem ser
aplicadas em C usando o construtor cast. Por exemplo, um cast pode ser usado para sobrescrever a
coerção não desejada que seria aplicada. Assim, o comando acima ficaria

x = x + (int) z

A linguagem Ada não fornece coerção. Sempre que uma conversão é permitida através da lingua-
gem, ela deve ser invocada explicitamente. Por exemplo, se “X” é declarado como uma variável
FLOAT e “I” como um INTEGER, a atribuição de “X” para “I” pode ser realizada pela seguinte instru-
ção:

I := INTEGER(X)

WWW.DOMINACONCURSOS.COM.BR 10
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

A função de conversão INTEGER fornecida por Ada processa um inteiro a partir de um valor de ponto
flutuante arredondando para o inteiro mais próximo

Em Java a conversão explícita é realizada por meio de construtores cast, conforme o exemplo abaixo:

float a = (float) 5.0; //Conversão do double 5.0 para float

int b = (int) 5.1987; //Conversão de double para int. Ocorre perda de informação pois o tipo double é
maior do que o tipo int.

float c = 100; //Conversão de int para float é implícito, não precisa de casting

int d = 'd'; //Conversão de char para int é implícito, não precisa de casting

Abaixo temos um exemplo de programa em Java que realiza tanto conversões implícitas quanto con-
versões explícitas.

/**

Exemplo de conversão de tipos primitivos utilizando casting.

*/

public class ExemploCasting {

public static void main(String[] args) {

/* Casting feito implicitamente, pois o valor possui um

tamanho menor que o tipo da variavel que irá recebe-lo. */

char a = 'a';

int b = 'b';

float c = 100;

System.out.println(a); //Imprime a

System.out.println(b); //Imprime 98

System.out.println(c); //Imprime 100.0

/* Casting feito explicitamente, pois o valor possui um tamanho

maior que o tipo da variavel que irá recebe-lo. */

int d = (int) 5.1987;

float e = (float) 5.0;

int f = (char) (a + 5);

char g = (char) 110.5;

System.out.println(d); //Imprime 5

System.out.println(e); //Imprime 5.0

System.out.println(f); //Imprime 102

System.out.println(g); //Imprime n

WWW.DOMINACONCURSOS.COM.BR 11
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Importante! Toda conversão deve ser verificada pois nem sempre a conversão é possível. Por isso,
as conversões devem ser tratadas a fim de que eventuais erros sejam adequadamente manipulados
pelo programa. Este assunto será visto na próxima aula.

Funções e Procedimentos

Me responda essa pergunta: Você saberia fazer um algoritmo para calcular a raiz quadrada de um
número? Reflita um pouquinho sobre a complexidade de tal algoritmo. E um algoritmo para gerar um
número aleatório, você faz ideia de como fazer? Bom, não são algoritmos tão triviais para se imple-
mentar. Mas e se você precisar descobrir a raiz quadrada de um número ou mesmo gerar um número
aleatório no seu algoritmo, o que fazer?

Aha! Já existem algoritmos que executam essas operações. O que precisamos é apenas solicitar a
execução desses algoritmos dentro do nosso. Esse tipo de algoritmo que solicitamos a execução de
dentro do nosso algoritmo são chamados de funções (ou procedimentos caso não retornem um resul-
tado).

Função ou Procedimento?

As funções (functions), também conhecidas como sub-rotinas, são muito utilizadas em programação.
Um dos grandes benefícios é não precisar copiar o código todas as vezes que precisar executar
aquela operação, além de deixar a leitura do código mais intuitiva. No exemplo anterior, caso preci-
sássemos descobrir a raiz quadrada de 10 números, bastaria chamar a funçãoque calcula a raiz qua-
drada 10 vezes.

Os procedimentos (procedures) diferem das funções apenas por não retornarem resultado, imagine
um procedimento que envia e-mail. Precisa retornar resultado? Nos algoritmos apresentados aqui
no { Dicas de Programação } nós já utilizamos muitos procedimentos sem perceber. Por exemplo,
para ler o valor digitado por um usuário nós já utilizamos o procedimento LEIA e para mostrar um
texto na tela nós utilizamos o procedimento ESCREVA.

Parâmetros

Funções (e procedimentos) podem ou não receber parâmetros. No caso da função de raiz quadrada,
é necessário passar como parâmetro o número que se deseja calcular a raiz, o procedimento ES-
CREVA, requer um texto como parâmetro para apresentar na tela do usuário.

Usando Funções na Prática!

Acho que já deu pra entender o que são funções e procedimentos, vamos ver agora como utilizá-las.
Abaixo a um algoritmo que calcula a hipotenusa de um triângulo retângulo, dado os lados, utilizando a
função RAIZQ do Visualg.

algoritmo "Hipotenusa"

var

a, b, c : REAL

inicio

ESCREVA ("Digite o lado A do triângulo retângulo: ")

LEIA (a)

ESCREVA ("Digite o lado B do triângulo retângulo: ")

LEIA (b)

WWW.DOMINACONCURSOS.COM.BR 12
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

c := RAIZQ (a*a + b*b )//Cálculo da hipotenusa utilizando a FUNÇÃO RAIZQ,

ESCREVA ("O valor da hipotenusa é: ", c)

fimalgoritmo

Observe que utilizamos a função RAIZQ para calcular a raiz quadrada do valor que passamos como
parâmetro (valor entre parênteses) "a*a + b*b", o valor retornado por essa função armazenamos na
variável "c".

Saiba o que é uma variável

Abaixo um exemplo da execução desse algoritmo.

CRIANDO AS PRÓPRIAS FUNÇÕES E PROCEDIMENTOS

Para se criar uma função no Visualg utilizamos a seguinte sintaxe:

funcao <nome-de-função> [(<sequência-de-declarações-de-parâmetros>)]: <tipo-de-dado>

// Seção de Declarações Internas

inicio

// Seção de Comandos

fimfuncao

Já para criar um procedimento no Visualg utilizamos a seguinte sintaxe:

procedimento <nome-de-procedimento> [(<sequência-de-declarações-de-parâmetros>)]

// Seção de Declarações Internas

inicio

// Seção de Comandos

Fim procedimento

Para exemplificar a criação e utilização das nossas próprias funções e procedimentos, vamos criar
um algoritmo para resolver equações de segundo grau, onde criaremos uma função chamada cal-
cula_delta.

Dúvida sobre como calcular uma equação de segundo grau?

algoritmo "EquaçãoDoSegundoGrau"

var

a, b, c, delta, x1, x2: REAL

WWW.DOMINACONCURSOS.COM.BR 13
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

funcao calcula_delta(): REAL

var

delta : REAL

inicio

delta := b*b - 4*a*c

RETORNE delta

fimfuncao

inicio

ESCREVA ("Informe o valor de A: ")

LEIA (a)

ESCREVA ("Informe o valor de B: ")

LEIA (b)

ESCREVA ("Informe o valor de C: ")

LEIA (c)

delta := calcula_delta()

SE (delta < 0 ) ENTAO

ESCREVA ("Esta equação não possui raízes reais.")

SENAO

SE (delta = 0) ENTAO

x1 := (-b + RAIZQ(delta)) / (2*a)

ESCREVA ("Esta equação possui apenas uma raiz: ", x1)

SENAO

x1 := (-b + RAIZQ(delta)) / (2*a)

x2 := (-b - RAIZQ(delta)) / (2*a)

ESCREVA ("Esta equação possui duas raízes: ", x1, " e ", x2)

FIMSE

FIMSE

fimalgoritmo

Veja que declaramos a função calcula_delta no inicio do código, e então podemos chamar essa fun-
ção de dentro do algoritmo. Simples né? Pra criar procedimento é a mesma coisa, só que não retorna
resultado e usamos a outra sintaxe apresentada anteriormente. Um possível resultado da execução
desse algoritmo é esse:

WWW.DOMINACONCURSOS.COM.BR 14
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Funções e procedimentos são utilizados com muita frequência em desenvolvimento de softwares.


São vários benefícios como: evita duplicação de código quando precisamos executar a mesma opera-
ção várias vezes, deixa o entendimento do algoritmo mais intuitívo, pois tiramos a parte complexa do
código do fluxo principal do algoritmo, etc.

Em linguagens orientada a objeto como java, C++ e C#, funções e procedimentos são chamados
de MÉTODO. Mais por uma questão de conceito de Orientação a Objetos, mas no fundo é a mesma
coisa, podem receber parâmetros e retornam ou não um resultado.

IP, IPv4 e IPv6

O IP (“Internet Protocol”, ou Protocolo da Internet) é nada mais, nada menos, que o seu endereço na
rede. É como se fosse um número de telefone ou o endereço de uma carta, o dado fundamental para
que as ligações da internet possam ser estabelecidas.

Cada dispositivo conectado à rede — seja ele um computador, tablet ou smartphone — possui um
número exclusivo, denominado endereço IP ou número IP. É essa informação que identifica os apare-
lhos na internet.

Para enviar informações de um computador para outro por meio da web, um pacote de dados con-
tendo os endereços IP de ambos os dispositivos deve ser transferido pela rede. Sem esses endere-
ços, os computadores não poderiam se comunicar e enviar dados uns aos outros. É por isso que o IP
é essencial para a infraestrutura da web.

Atualmente, a versão mais usada do protocolo IP é o IPv4.

O que é o IPv4?

O IPv4 é a quarta e mais difundida versão do protocolo IP. Com endereços no padrão 32 bits, é bem
antigo e possui vários problemas — desde falhas de segurança incontornáveis até o esgotamento da
sua capacidade de expansão. Hoje, em todo o mundo, já está bem difícil conseguir um endereço
nesse padrão.

O que é o IPv6?

Sexta revisão do Internet Protocol, o IPv6 funciona de maneira semelhante ao IPv4, mas com uma
grande diferença: utiliza endereços no padrão 128 bits.

Por que o IPv4 já atingiu o seu limite?

Talvez você já tenha visto em algum lugar a notícia de que os endereços da internet estão acabando.
Trata-se de uma meia-verdade: o que acontece é que os últimos blocos de endereços IPv4 da Inter-
net já foram alocados — aqui no Brasil, isso aconteceu já há alguns anos.

Por muito tempo, os 32 bits no campo de endereço do IPv4 foram suficientes para cobrir todos os dis-
positivos conectados à rede: com 232 números IP no total, o protocolo é capaz de cobrir quase 4,3 bi-
lhões de endereços.

Parece muito, né? Acontece que, com o avanço dos dispositivos móveis e o advento de tecnologias
como a Internet das Coisas, a demanda por novos endereços ficou cada vez maior. Foi essa necessi-
dade que fez surgir o padrão IPv6 — que não só oferece muito mais endereços numéricos, mas tam-
bém simplifica as atribuições de endereços e os recursos adicionais de segurança de rede.

WWW.DOMINACONCURSOS.COM.BR 15
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

A transição do IPv4 para o IPv6 provavelmente terá algumas complicações, já que a maioria das pes-
soas não está familiarizada com isso — muito menos com o impacto que essa mudança pode ter em
suas vidas.

No entanto, é preciso destacar que os endereços IPv4 ainda não acabaram: muitos deles não são uti-
lizados e estão nas mãos de instituições como o MIT e empresas como a Ford e a IBM. O caráter es-
casso desses endereços os transformou em verdadeiras mercadorias, gerando um grande problema
para a infraestrutura da web.

Como o IPv6 resolve esse problema?

Como informamos, o IPv6 utiliza endereços de padrão 128 bits. Logo, ele pode suportar 2 128 endere-
ços na Internet — para ser exato, mais de 340 duodecilhões deles, o equivalente ao número 340 se-
guido por 12 zeros!

Trata-se de um volume colossal de endereços — tanto que requer um sistema hexadecimal para
exibi-los —, e é mais que suficiente para manter a internet operacional por muito tempo.

Então, se o IPv6 corrige todos esses problemas, por que nós simplesmente não realizamos a troca
dos padrões? Bem, como o esgotamento de endereços IPv4 foi previsto anos atrás, então a mudança
ainda está em curso. Só que o progresso tem sido lento: apenas uma pequena fração da web mudou
para o novo protocolo.

Como o IPv4 e o IPv6 são executados essencialmente como redes paralelas, a troca de dados entre
esses protocolos requer gateways específicos. Assim, para fazer a troca, o software e os roteadores
terão de ser alterados para suportar a rede mais avançada, o que vai demandar tempo e dinheiro.

Como essa mudança vai afetar a internet?

Inicialmente, a mudança do IPv4 para o IPv6 não vai trazer um impacto muito grande em sua vida. A
maioria dos sistemas operacionais já suporta o IPv6, incluindo versões mais antigas, como o Mac OS
X 10.2 e o Windows XP SP 1.

No entanto, muitos roteadores e servidores não suportam o novo protocolo, o que torna impossível a
conexão entre um dispositivo com endereço IPv6 com um roteador ou servidor que só suporta IPv4.

É bom lembrar também que, como o IPv6 facilita ter mais dispositivos conectados e expostos na inter-
net, ainda há alguns bugs e falhas de segurança que precisam ser corrigidos.

Ninguém sabe ainda o custo dessa transição ou quanto tempo isso levará, mas de uma coisa você já
pode ter certeza: para que a web continue funcionando da forma como a conhecemos hoje, esses
probleminhas precisam ser totalmente superados.

os protocolos IPv4 e IPv6 ainda causam dúvidas para quem utiliza a Internet. Por isso, o TechTudo
preparou um pequeno guia para explicar o que são esses protocolos, e como eles funcionam. Antes
de tudo, é preciso saber que o padrão IPv4 está desde a criação da rede e logo será excluído para o
uso do IPv6. Confira, abaixo, no que consiste cada um deles.

O que é o IPv4?

IPv4 significa Protocol version 4, ou versão 4 de protocolos. É a tecnologia que permite que nossos
aparelhos conectem na Internet, seja qual for o tipo de gadget – pode ser PC, Mac, smartphones ou
outros aparelhos. Cada um que estiver online terá um código único, como 99.48.227.227 por exem-
plo, para enviar e receber dados de outros que estiverem conectados.

O que é o IPv6?

O IPv6 é a sexta revisão dos protocolos na Internet e é o sucessor natural do IPv4. Essencialmente,
ele faz a mesma coisa que outras tecnologias desse tipo, mas em 128 bits.

Por que estamos usando IPv4?

WWW.DOMINACONCURSOS.COM.BR 16
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

O IPv4 transfere endereços de protocolos de 32 bits. Sustenta aproximadamente 4,29 bilhões de IPs
pelo mundo todo, o que nos fez chegar na crise atual: O sistema não suportará mais endereços do
que isso.

Como o IPv6 resolveria esse problema?

O novo sistema suportaria algo como 340.282.366.920.938.000.000.000.000.000.000.000.000 ende-


reços. Você consegue calcular isso? Pois é, nem eu. Mas é muito mais do que 4 bilhões atuais e con-
seguiria suportar a demanda do crescimento da internet por mais muitos anos. E isso acontece ape-
nas porque os IPs trabalham em 128 bits.

Por que não substituímos os sistemas, simplesmente?

Os protocolos já começaram a ser substituídos na última década. Essencialmente, os dois sistemas


funcionam paralelamente. No entanto, o teste de verdade com o IPv6 será em 8 de junho desse ano,
batizado de “World IPv6 Day“. Google, Facebook e outros grandes companhias farão a substituição
para testar se os novos IPs vão funcionar.

Como isso vai me afetar?

Aparentemente, isso não vai te afetar. Sistemas operacionais como Windows XP Service Pack 1, Mac
OS X 10.2 e posteriores contam com IPv6. O problema está nos aparelhos roteadores. Neste caso,
você terá, que fazer a substituição dessa peça por outra mais atual para se manter online. Alguns
bugs também precisam ser ajustados para a grande massa. E ninguém sabe quanto vai demorar para
a transição completa entre os sistemas. De qualquer maneira, não há motivo para entrar em pânico.

A maior diferença entre IPv4 e IPv6 com certeza é o número de endereços IP disponíveis em cada
um dos protocolos.

No IPv4 temos 4,294,967,296 endereços, enquanto no IPv6 temos um total de


340,282,366,920,938,463,463,374,607,431,768,211,456 endereços IP.

Note abaixo como a diferença é gritante:

IPv4: 4,294,967,296
IPv6: 340,282,366,920,938,463,463,374,607,431,768,211,456

Esta diferença de valores entre o IPv4 e o IPv6 representa aproximadamente 79 octilhões de vezes a
quantidade de endereços IPv6 em relação a endereços IPv4, além disso, mais de 56 octilhões de en-
dereços por ser humano na Terra, considerando-se a população estimada em 6 bilhões de habitan-
tes.

Tecnicamente as funcionalidades da Internet continuarão as mesmas com a introdução do IPv6 na


rede e, com certeza, ambas versões do protocolo IP deverão funcionar ao mesmo tempo, tanto nas
redes já implantadas em IPv4 como em novas redes que serão montadas. Atualmente as redes que
suportam IPv6 também suportam o IPv4 e ambos protocolos deverão ser utilizados por um bom
tempo ainda.

Acompanhe na tabela onde mostramos uma comparação simples em termos somente do formato dos
endereços e quantidades.

WWW.DOMINACONCURSOS.COM.BR 17
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Outras Diferenças Importantes entre IPv4 e IPv6

Outras diferenças importantes são a introdução dos endereços de anycast e a retirada dos endereços
de broadcast.

Isso mesmo, o grande vilão do IPv4, o broadcast, no IPv6 não existe mais. Agora no IPv6 temos en-
dereços de unicast, multicast e anycast.

Caso seja necessário enviar uma mensagem a todos os hosts pode-se utilizar um pacote de multicast
para o endereço de link-local de destino chamado de “all nodes address” (FF02::1).

Outro ponto importante é que no IPv6 ainda temos a parte de rede, subrede e host, como no IPv4,
mas não utilizamos mais o termo máscara e sim somente prefixo.

O prefixo do IPv6 tem a mesma funcionalidade do prefixo do CIDR e conta a quantidade de bits de
rede ou subrede que a máscara tem, sendo que os bits 1 continuam indicando a porção de redes e os
bits zero os hosts.

No exemplo dado na tabela anterior temos a rede 3FFE:F200:0234::/48 e o /48 representa o prefixo
dessa rede, ou seja, os primeiros 48 bits do endereço são bits de rede e os demais 80 bits (128-48)
são de host. Isso mesmo, temos 80 bits para hosts nesse exemplo.

Formato do Pacote IPv6

O cabeçalho do pacote IPv6 é bem mais simples que o do IPv4, contendo apenas 8 campos princi-
pais e caso serviços adicionais sejam necessários existem extensões de cabeçalho que podem ser
utilizadas.

O cabeçalho (header) básico está na figura abaixo.

WWW.DOMINACONCURSOS.COM.BR 18
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

A descrição de cada campo segue abaixo:

Version (versão – 4 bits): Contém o valor para versão 6.

Priority ou Traffic Class (classe de tráfego – 8 bits): Um valor de DSCP para QoS (qualidade de servi-
ços).

Flow Label (identificador de fluxo – 20 bits): Campo opcional que identifica fluxos individuais. Ideal-
mente esse campo é configurado pelo endereço de destino para separar os fluxos de cada uma das
aplicações e os nós intermediários de rede podem utilizá-lo de forma agregada com os endereços de
origem e destino para realização de tratamento específico dos pacotes.

Payload Length (tamanho do payload – 16 bits): Tamanho do payload em bytes.

Next Header (próximo cabeçalho – 8 bits): Cabeçalho ou protocolo que virá a seguir. É utilizado para
identificar que existem cabeçalhos de extensão após o principal.

Hop Limit (limite de saltos – 8 bits): Similar ao tempo de vida de um pacote IPv4 (TTL – time to live)
utilizado no teste de traceroute.

Source Address (endereço IPv6 de origem – 128 bits): Endereço IP de quem está enviando os paco-
tes.

Destination Address (endereço IPv6 de destino – 128 bits): Endereço IP do host remoto que deve re-
ceber os pacotes.

Aqui vem mais uma diferença do IPv6, pois no IPv4 o cabeçalho base continha todas as informações
principais e opcionais (mesmo que não fossem utilizadas).

Já o IPv6 trata essas informações adicionais como cabeçalhos opcionais chamados de “cabeçalhos
de extensão”.

Os cabeçalhos de extensão são inseridos entre o cabeçalho base e o cabeçalho da camada imediata-
mente acima (payload), não tendo nem quantidade ou tamanho fixo.

Caso existam múltiplos cabeçalhos de extensão no mesmo pacote, eles serão encadeados em série
formando uma “cadeia de cabeçalhos”.

Portanto, o cabeçalho do IPv6 além de ser mais simples que o do IPv4, também trata de questões
como QoS e segurança de maneira nativa, ou seja, dentro do próprio cabeçalho sem a necessidade
de implementações e recursos adicionais como era necessário para o IPv4.

Tipos de Comunicação e Endereços em IPv6

Como já citado anteriormente, no IPv6 não temos mais os endereços e a comunicação via broadcast.

Os endereços de unicast e multicast continuam existindo e com a mesma função em ambas versões
de protocolo, porém foi criado um tipo a mais de endereçamento chamado de anycast.

Veja abaixo a descrição resumida de cada um deles:

Unicast: Comunicação um para um.

Multicast: Comunicação um para muitos (grupo de dispositivos configurados com o mesmo ende-
reço).

Anycast: Endereço configurado em múltiplas interfaces.

Escrevendo e Entendendo um Endereço IPv6

Antes de falar de como o endereçamento é dividido vamos ver como podemos escrever um endereço
IPv6 (notação em hexadecimal) e também as partes que o compõe.

WWW.DOMINACONCURSOS.COM.BR 19
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

Oo endereço IPv6 possui 128 bits e é escrito em hexadecimal, diferente do IPv4 que eram 32 bits (4
conjuntos de 8 bits escritos em decimal pontuado).

Portanto, agora cada algarismo de um IPv6 pode ter os números de 0 a 9, assim como as letras de A
a F, totalizando 16 algarismos, por isso o nome hexadecimal. Veja quanto vale de A a F em decimal
(você pode escrever as letras do hexadecimal tanto em maiúsculo como em minúsculo, tanto faz!):

null

“A” vale 10 em decimal

“B” vale 11 em decimal

“C” vale 12 em decimal

“D” vale 13 em decimal

“E” vale 14 em decimal

“F” vale 15 em decimal

Como cada algarismo em hexadecimal tem 4 bits, em 128 bits temos um total de 32 algarismos hexa-
decimais divididos de 4 em 4, ou seja, oito conjuntos de quatro algarismos em hexadecimal separa-
dos por dois pontos “:” (não mais pelo ponto “.” como era no IPv4).

Um exemplo de IPv6 é “2000:1234:ade4:ffa0:2234:0000:0000:0012”.

Resumo das Diferenças entre IPv4 e IPv6

IPv4 tem 32 bits e IPv6 128 bits

IPv4 representado com Decimal pontuado e IPv6 em Hexadecimal separados por dois pontos

Endereço de loopback IPv4 127.0.0.1 no IPv6 é ::1

IPv6 não usa mais broadcast

IPv6 possui extensões de cabeçalho

Similar ao broadcast existe o endereço chamado “all nodes address” (FF02::1)

IPV4 IPV6

Endereço de 32bits Endereço de 128bits

Suporte opcional de IPSec Suporte obrigatório de IPSec

Nenhuma referência a capacidade Introduz capacidades de QoS utili-


de QoS (Quality of Service) zando para isso o campo Flow Label

A fragmentação deixa de ser reali-


Processo de fragmentação realizada
zada pelos routers e passa a ser pro-
pelo router
cessada pelos host emissores

Todos os campos de opção foram


O cabeçalho inclui os campos de op-
mudados para dentro do campo ex-
ção
tension header

WWW.DOMINACONCURSOS.COM.BR 20
MODOS DE ENDERAÇAMENTO E TIPOS DE DADOS

O ARP foi abandonado, sendo subs-


O Adress Resolution Protocol (ARP),
tituídos pelas mensagens Neibhbor
utiliza requisitos do tipo Broadcast
Discovery

Internet Resolution Management


O IGMP fio substituído por mensa-
Protocol (IGMP) é utilizado para gerir
gens Multcast Listner Discovery
relações locais de sub-redes

Os Endereços de Broadcast são utili- Deixa de existir o endereço de Bro-


zados para enviar tráfego para todos adcast, para utilizar endereços multi-
os host de uma rede cast

O endereço tem de ser configurado Adição de funcionalidades de auto-


manualmente configuração

Suporta pacotes de 576 bytes, passi- Suporta pacotes de 1280 bytes, sem
veis de serem fragmentados fragmentação

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

WWW.DOMINACONCURSOS.COM.BR 21
INVESTIGAÇÃO E ANÁLISE

Investigação e Análise

Vivemos em uma era altamente tecnológica. A todo o momento lidamos com dispositivos eletrônicos
que armazenam dados e estão conectados à internet.

E a prova disso são as nossas comunicações. Passamos boa parte do tempo conversando com al-
guém no whatsapp, acessando e-mails, sites e conectando em diversos aplicativos em celulares, ta-
blets e computadores. Todos esses equipamentos têm uma capacidade muito grande de armazenar
informações.

Com isso, os crimes de invasão e roubo de dados têm aumentado consideravelmente. Somente em
2017, mais de 60 milhões de pessoas foram vítimas de crimes digitais no Brasil, de acordo com pes-
quisa realizada pela Symantec, empresa de cibersegurança.

Para identificar infratores, a Computação Forense conta com uma perícia digital especializada e pos-
sui ferramentas de investigação forense computacional que coletam, preservam e analisam dados
em dispositivos móveis e eletrônicos para serem utilizados como prova em um processo judicial.

Crimes Que Necessitam De Investigação Forense Computacional

Já sabemos que os registros de crimes digitais são diversos, o que demonstra que a investigação fo-
rense computacional necessita de atenção e cuidado especial por parte dos profissionais de tecnolo-
gia.

Ainda de acordo com pesquisa da empresa Symantec, os crimes digitais mais frequentes envolvem:

Aparelhos infectados por vírus ou outras ameaças de segurança;

Senhas de contas online descobertas;

Compras online que eram na verdade golpes;

Cliques em e-mails fraudulentos ou envio de informações sigilosas;

Esses casos demonstram que os cibercriminosos utilizam os mais diversos mecanismos para reco-
lher dados e informações de usuários com más intenções.

Por que a forense computacional é tão importante?

No processo de combate a crimes digitais, a área de Forense Computacional se faz necessária. Esse
segmento de especialização é conhecido como uma ciência que estuda:

Aquisição;

Preservação;

Recuperação;

Análise de dados armazenados em mídias computadorizadas.

Também é de sua notoriedade caracterizar crimes de informática, com base nas evidências digitais
identificadas no sistema inválido.

Principais ferramentas de investigação forense computacional

WWW.DOMINACONCURSOS.COM.BR 1
INVESTIGAÇÃO E ANÁLISE

Para lidar com os diversos tipos de crimes digitais, peritos forenses fazem uso de vários softwares
durante os processos de coleta e análise de dados. Em virtude da importância desses recursos, lista-
mos as seis ferramentas de investigação forense computacional mais utilizadas no Brasil e exterior.
Vamos a elas!

Sistema IPED

É um programa computacional forense desenvolvido no Brasil, por peritos federais, para a investiga-
ção na Operação Lava Jato. O software permite:

Análise integrada das informações armazenadas nos dispositivos digitais apreendidos;

Recuperação de arquivos deletados;

Identificação de criptografia;

Localização de palavras;

Reconhecimento óptico de caracteres;

Detecção de nudez;

Cruzamento de informações;

Rastreamento de localização;

Entre outras funcionalidades.

Com uma interface simples e intuitiva, o software pode ser executado em Windows, Linux e Mac OS,
possui alta escabilidade, que possibilita utilizar em número ilimitado de computadores, portabilidade,
arquitetura multihread e processamento em batch, ajudando na análise de grandes volumes de dados
em qualquer dia e horário da semana.

É possível processar dezenas de milhões de arquivos simultaneamente de até cem dispositivos dife-
rentes e ter todo o material disponível para análise após um dia desse processo.

EnCase

É considerada como uma das melhores ferramentas do mundo, utilizada pela Polícia Federal e FBI. O
programa desenvolvido pela Guidance Software necessita de uma licença paga para uso e possui as
seguintes funcionalidades:

Realiza investigações completas em dispositivos eletrônicos;

Padroniza laudos periciais;

Organiza o banco de dados de evidências;

Recupera arquivos apagados;

Fornece senhas de arquivos criptografados;

Analisa hardwares e e-mails;

Pesquisa palavras-chave de forma inteligente;

Fornece relatórios detalhados;

WWW.DOMINACONCURSOS.COM.BR 2
INVESTIGAÇÃO E ANÁLISE

Entre outras funções importantes para a investigação forense computacional.

FTK

É um software de fácil operação desenvolvido pela AccessData com versões gratuitas para uso. Algu-
mas das funcionalidades da ferramenta de investigação digital são:

Escaneia o disco rígido para coletar informações;

Processa e analisa documentos, gráficos e imagens;

Eecupera arquivos;

Cria filtros para gerenciar evidências relevantes;

Entre outras vantagens que permitem uma análise rápida e eficiente.

UFED Touch

É um programa desenvolvido pela empresa israelense Cellebrite e é utilizado em mais de 60 países


por órgãos de polícia, inclusive, FBI, CIA e a Polícia Federal do Brasil.

Essa tecnologia também contribui com as investigações em telefones celulares apreendidos pela da
Operação Lava Jato.

Essa ferramenta faz a extração e análise inteligente de todos os dados armazenados na memória do
celular, mesmo os dados bloqueados com senhas, criptografados ou apagados da memória do dispo-
sitivo.

O software é compatível com mais de 17 mil tipos de dispositivos de diferentes sistemas operacionais
e fabricantes.

DFF

A ferramenta de investigação forense computacional DFF (Digital Forensics Framework) é gratuita e


permite que as análises de dados sejam feitas em sistemas Windows e Linux. De forma rápida, prá-
tica e objetiva, contribui para que as evidências digitais sejam preservadas.

Xplico

Mais uma ferramenta muito utilizada para investigações forenses é a Xplico. Com ela, é possível ex-
trair dados cruciais para o processe de análise de crimes digitais, dados esses que podem ser arma-
zenados no SQLite. Alguns dos protocolos mais populares e aceitos pela ferramenta são:

HTTP;

POP;

IMAP;

SMTP;

UDP;

TCP;

SIP.

WWW.DOMINACONCURSOS.COM.BR 3
INVESTIGAÇÃO E ANÁLISE

Essas são as principais ferramentas utilizadas na análise forense computacional que auxiliam os peri-
tos na investigação de crimes cibernéticos. Existem muitos softwares no mercado que atendem dife-
rentes sistemas e aplicativos, por isso, cada situação deve ser avaliada para verificar qual o melhor
método a ser aplicado.

Para atuar nessa área, o perito precisa saber operar e utilizar programas legalizados e licenciados.
Também é preciso buscar capacitações frequentes para executar um trabalho eficiente, pois de nada
adianta existirem tantos recursos para investigação forense computacional, se não houver profissio-
nais qualificados para extrair o máximo de informações para o desvendamento de crimes digitais.

O fato é que esse mercado cresce constantemente e os profissionais que pretendem atuar na área ou
aperfeiçoar seus métodos de trabalho, devem priorizar o conhecimento e a atualização.

Considerando essas demandas e a necessidade real de preparação de especialistas, a Pós-gradua-


ção em Computação Forense e Segurança da Informação traz todo embasamento conceitual e prá-
tico para o desenvolvimento desses profissionais. E o melhor, as técnicas e softwares utilizados no
curso são os mesmos que as principais polícias do mundo utilizam na elucidação de crimes. O má-
ximo, não é mesmo?!

mensagens em listas de discussão

O objetivo da lista de discussão é debater um assunto, via e-mail (correio eletrônico), com os partici-
pantes cadastrados nesta lista, configurando-se numa comunidade colaborativa virtual que se reúnem
“em torno de interesses bem determinados e operam via e-mails como forma de contato” (MAR-
CUSHI, 2001).

Outra definição de lista de discussão é feita por Levy (1990): “O correio eletrônico permite enviar, de
uma só vez, uma mesma mensagem a uma lista (que pode ser longa) de correspondentes, bastando
indicar essa lista. Assim, não é necessário fazer fotocópias do documento, nem digitar diversos nú-
meros telefônicos, um após o outro”.

A lista de discussão é um endereço de e-mail para o qual um usuário envia uma mensagem. Esta
mensagem é automaticamente enviada para todos os membros cadastrados nesta lista. Estas men-
sagens são recebidas através do e-mail de cada participante.

Os participantes podem a qualquer tempo colocar uma dúvida ou um tema na lista. A partir daí, os
que puderem contribuir vão enviar seus e-mails de resposta que também serão recebidos por todos.
Não é necessário instalar nenhum programa no computador para sua utilização, pois o único pré-re-
quisito é possuir um endereço de e-mail.

Phishing

Crimes virtuais em formato de páginas falsas ou mensagens de e-mail têm se tornado uma das princi-
pais armadilhas utilizadas por criminosos na internet.

Então, tais armadilhas são conhecidas como Phishing (descrição Wikipedia), golpe por meio do
qual um criminoso tenta obter dados pessoais ou financeiros de um usuário sem o seu consenti-
mento, geralmente fazendo-se passar por instituições sérias através da criação de páginas falsas.

Assim, páginas falsas são criadas com a aparência idêntica às originais, visando fazer uso da autori-
dade e da credibilidade do site original para fazer com que usuários realizem ações ou forneçam seus
dados para o cibercriminoso.

Além disso, existem diversos meios de cibercriminosos criarem páginas falsas, o principal deles é re-
alizar uma cópia do site original e alterar o endereço de envio do formulário deste site, seja o formulá-

WWW.DOMINACONCURSOS.COM.BR 4
INVESTIGAÇÃO E ANÁLISE

rio de usuário e senha de acesso ao e-mail, formulário de compra de um produto ou o link para trans-
ferir um arquivo para o computador do usuário, de forma com que ao inserir seus dados, ao invés de
enviá-los para a empresa original, o formulário irá armazená-los em algum local aonde o cibercrimi-
noso tenha acesso.

Apesar de possuírem aparência idêntica ao site original, as páginas falsas precisam ser armazenadas
em endereços próprios.

Então, cibercriminosos podem contratar um serviço de hospedagem de sites ou inserir suas páginas
falsas em sites de terceiros.

Desta maneira, o endereço da página falsa será sempre diferente do endereço original, mesmo que
até o endereço seja semelhante, por exemplo, as vezes a diferença será uma letra repetida ou uma
troca de símbolos semelhantes como a letra O e o número 0.

Identificação do cibercriminoso: Análise Forense de Evidências

Devido ao objetivo da página falsa, o cibercriminoso necessariamente irá enviar os dados, indevida-
mente obtidos, para um local que ele possua acesso, tal como um endereço de e-mail, o próprio local
onde está armazenando a página falsa ou um segundo site na internet. Em qualquer um destes ca-
sos, é possível identificar o autor do golpe através da análise forense das evidências.

Para uma página ficar disponível para a internet, é necessário que ela seja armazenada em um servi-
dor de internet, geralmente fornecidos por empresas de hospedagem de sites. Estes servidores regis-
tram o endereço IP da conexão do usuário que está realizando acesso em suas páginas, bem como
daqueles usuários que adicionam novas páginas nele.

Por este motivo, sejam servidores próprios ou de terceiros, quando páginas falsas são publicadas na
internet, é possível identificar o autor do golpe através do rastreamento do endereço IP e o endereço
residencial utilizado na conexão.

Além disso muitos golpes enviam os dados das vítimas diretamente para um endereço de e-mail no
qual o cibercriminoso tem acesso, portanto também é possível rastrear os endereços IP das cone-
xões que realizam acessos à caixa de mensagens deste e-mail.

Crimes Virtuais: A integridade das evidências

O sucesso na identificação do cibercriminoso depende fundamentalmente da realização de uma in-


vestigação que garanta a integridade das evidências.

A Coleta Forense de dados em casos de golpes de phishing ocorre com a captura de tela da página
falsa e do código fonte desta página, principalmente do trecho do código que mostra para onde os da-
dos do usuário estão sendo enviados.

Além disso, é fundamental que sejam coletadas as informações da hospedagem da página e dos da-
dos do responsável pelo registro do nome do site.

Com estas informações em mãos, é solicitado em processo judicial que o Juiz determine que a hos-
pedagem forneça os endereços IP, data e hora das conexões utilizadas para gravar a referida página
falsa.

Uma vez que a empresa responsável pela hospedagem forneça tais dados, será a vez de identificar
quem são as empresas responsáveis pelas conexões, tais como Vivo, Tim, Telemar, etc.

Uma nova determinação judicial solicitará que estas empresas forneçam os dados dos clientes res-
ponsáveis pelas conexões, incluindo dados de identificação e localização.

WWW.DOMINACONCURSOS.COM.BR 5
INVESTIGAÇÃO E ANÁLISE

Estes procedimentos podem levar algum tempo, porém uma vez que os provedores de internet forne-
çam os dados dos responsáveis pelas conexões utilizadas para administração das páginas falsas, é
possível abrir um processo criminal e cível contra os supostos autores do golpe.

Perícia Forense: uma área com potencial de crescimento

O consultor em forense digital tem conhecimentos técnicos avançados em investigação e análise em


diversos meios digitais.

Ele não é apenas tecnicamente capacitado como também possui bons conhecimentos sobre a legis-
lação aplicável ao seu trabalho.

Então, apesar de pouco difundida no Brasil, a consultoria pode ser requisitada por qualquer indivíduo
que necessite, podendo ainda complementar ou auxiliar o trabalho oficial do departamento de investi-
gações criminais.

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

_________________________________________________________________________________

WWW.DOMINACONCURSOS.COM.BR 6

Você também pode gostar