Education is the best provision for the journey to old age.

Noticias do Blog

Proximo assunto: Pipeline

sábado, 5 de setembro de 2009

Projeto Natal - Xbox 360

Bom dia pessoal,

Depois de muito, mas muito tempo volto a fazer uma postagem. Realmente ultimamente tem sido complicado administrar o blog, ultimos meses de faculdade então tem bastante coisa para fazer, mas logo tudo estara terminado e terei mais tempo para novas postagens.

O ppst de hoje é mais voltado para aqueles que gostam de video games. Falaremos sobre o mais recente projeto da Microsoft em relação ao Xbox 360: O Projeto Natal.

A Microsoft apresentou seu novo projeto para a linha de video games Xbox 360, que vem com um novo sistema de controle que promete mudar a maneira de intereção entre game e player. Esse novo sistema de controle detecta os movimentos do seu corpo e nao requer nenhum tipo de controle remoto.

Essa é uma pequena explicação da própria Microsoft:
Compatível com qualquer sistema Xbox 360, o sensor Project Natal é o primeiro do mundo a combinar, em um mesmo aparelho, uma câmera RGB, sensor de profundidade, microfone e processador especial. Ao contrário de câmeras e controles 2D, o Project Natal acompanha o movimento do seu corpo em 3D, enquanto responde a comandos, instruções e até mesmo mudança de tom na sua voz. Além disso, ao contrário de outros dispositivos, o sensor "Projeto Natal" não depende apenas da luz. Ele pode reconhecer você apenas olhando para seu rosto, e não só reage a palavras mas entende o que você diz. Se você passa instruções a outros jogadores num jogo de futebol americano, eles respondem a seus comandos.
Muitos devem estar se perguntando o porque do nome Projeto Natal. Bom, ai que está uma grande notícia. O projeto foi desenvolvido por um brasileiro, na universidade de Natal. Isso é uma grande conquista pois prova que o Brasil tem pessoas com grandes ideias e capacidade para desenvolver grandes projetos.


Projeto Natal parece algo futuristico, coisas que a gente só ve no cinema. Mas isso é realidade e em alguns anos muitas coisas que eram capazes de se ver apenas no cinema poderão estar dentro da sua sala, do seu quarto, cozinha e por ai vai. Projeto Natal vai além de video games, ele traz uma nova maneira de interação com a realidade virutal.

Projeto Natal



Projeto Natal Milo Demo (Pra quem gosta de Inteligência Artificial)



Para ver mais videos clique aqui.

sábado, 27 de junho de 2009

Cluster Beowulf - Linux

Vamos falar um pouco sobre Cluster, mais especificamente sobre Cluster Beowulf. Parte desse post é referente à um trabalho que fiz na faculdade e que estará disponivel para download ao final do artigo.

O que é um Cluster?

Um cluster, ou aglomerado de computadores, é formado por um conjunto de computadores, que utiliza um tipo especial de sistema operacional classificado como sistema distribuído. Muitas vezes é construído a partir de computadores convencionais (personal computers), os quais são ligados em rede e comunicam-se através do sistema, trabalhando como se fossem uma única máquina de grande porte. Há diversos tipos de cluster. Um tipo famoso é o cluster da classe Beowulf, constituído por diversos nós escravos gerenciados por um só computador.

Quando se fala de cluster de um HD (Hard Disc), refere-se ao cruzamento de uma trilha com um setor formatado. Um HDD (hard disk drive) possui vários clusters que serão usados para armazenar dados de um determinado arquivo. Com essa divisão em trilhas e setores, é possível criar um endereçamento que visa facilitar o acesso a dados não contíguos, assim como o endereçamento de uma planilha de cálculos ou, como um exemplo mais simples, o tabuleiro do jogo "Batalha Naval"

História do Cluster Beowulf

O nome Beowulf deriva de um épico inglês que conta a historia de um herói que salvou um reino dinamarquês de um monstro chamado Grendel. Em 1993, Donald Becker e Thomas Sterling começaram a esboçar os contornos de uma mercadoria com base em cluster projetado como um sistema de custo-eficaz alternativo para os supercomputadores. No inicio de 1994, trabalhando no CEDIS (Centro de Excelência em Ciência da Informação e em Dados Espaciais) sob o patrocínio do projeto HPCC/SEE, o projeto Beowulf foi iniciado.

O protótipo inicial era um cluster composto de 16 processadores DX4 conectados por um canal Ethernet. A maquina foi um sucesso instantâneo e a idéia de proporcionar COTS (Commodity Off the Shelf) baseado em sistemas computacionais para satisfazer requisitos específicos se espalhou rapidamente através da NASA e para as comunidades acadêmicas e de pesquisa.

Uma medida não técnica de sucesso é a observação de que os pesquisadores no interior da comunidade de Computação de Alto Desempenho agora se referem a essas maquinas como “Classe de computadores cluster Beowulf”. Clusters Beowulf são agora reconhecidos como genero dentro da comunidade HPC.

O primeiro cluster Beowulf foi construído com processadores DX4 e 10Mbit Ethernet. Os processadores eram muito rápidos para uma única Ethernet e Ethernet switches ainda eram caros. Para equilibrar o sistema, Don Becker reescreveu seus drivers Ethernet para Linux e construiu um “canal ligado” aonde o trafego de rede Ethernet foi distribuído em dois ou mais Ethernets.

No final de 1997, uma boa escolha para um sistema equilibrado foi processadores 16,200 MHz conectados por Fast Ethernet e Fast Ethernet switch. A exata configuração de uma rede cluster equilibrada continua a mudar e continua a depender do tamanho do cluster e as relações entre velocidade do processador, largura da banda, e a lista de preços para os componentes. Uma importante característica dos clusters Beowulf é que substituir o processador, a tecnologia de rede ou os custos relativos dos componentes não alteram o modelo de programação.

O primeiro cluster Beowulf foi construído para resolver um determinado requisito computacional do SEE e pela comunidade de pesquisadores com experiência em programação paralela. Muitos destes pesquisadores tinham diferentes objetivos e expectativas do que os administradores do sistema em relação aos dados detalhados de desempenho, ferramentas de desenvolvimento Isso conduziu uma atitude “do-it-yourself”. Alem disso, o acesso a uma grande maquina significativa muitas vezes o acesso a apenas uma pequena fração dos recursos da maquina compartilhada entre muitos usuários.

Para esses usuários, a construção de um cluster que eles poderiam controlar e utilizar completamente resultou em uma maior plataforma de desempenho computacional. O fato de que os componentes se tornaram acessíveis, aumentou o valor para este segmento da comunidade de pesquisa. Enquanto aprender a construir e gerenciar um cluster Beowulf foram um investimento considerável, houve benefícios substanciais para não estar vinculado a uma solução proprietária.

Esse núcleo paralelo de programadores era, em primeiro lugar, interessados em computação de alto desempenho aplicada aos problemas complicados. Na Supercomputing de 1996, tanto NASA quanto DOE demonstraram clusters custando menos de US $ 100.000 que atingiriam mais de um gigaflop/s de desempenho sustentado. Um ano mais tarde, pesquisadores da NASA no Goddard Space Flight Center combinaram dois clusters para um total de 199 processadores P6 e rodaram uma versão PPM (Piece-wise Parabolic Method) sustentado em uma taxa de 10,1 Gflop/s. Na mesma semana, Caltech’s 140 cluster rodou um problema N-body a uma taxa de 10,9 Gflop/s.

Embora nem todos os supercomputadores são clusters Beowulf, um pode construir um Beowulf que é poderoso o suficiente para atrair o interesse dos usuários de supercomputadores. Alem do programador paralelo, cluster Beowulf foram construídos e utilizados pelos programadores com pouca experiência em programação paralela. Clusters Beowulf fornecem a universidades, muitas vezes com recursos limitados, uma excelente plataforma paralela para ensinar programação paralela.

Fatores contribuintes

Alguns fatores que contribuíram para o crescimento da classe de computadores Cluster Beowulf:
  • A prevalência de computadores para escritórios, computadores pessoais, jogos e entretenimento agora fornecem os designers de sistemas relacionando o custo-benefício com novos tipos de componentes.
  • A industria COTS agora oferece subsistemas completamente montados e de fácil manuseio (Microprocessadores, motherboards, disco e placas de interface de rede), visto que esses componentes estão cada vez mais disponíveis no mercado.
  • Aumento gradativo da necessidade de desempenho elevado de processamento.
  • Desempenho elevado e semelhante ao MPP’s, a um custo final mais acessível.
  • Facilidade na realização de manutenções, para as quais pode-se utilizar ferramentas via login remoto (telnet ou ssh).
  • A grande concorrência no mercado tem impulsionado a queda dos preços e aumentado a segurança/confiança desses sistemas.
  • A disponibilidade de software open source, em particular o sistema operacional Linux, compiladores GNU e ferramentas de programação.
  • Programas como o HPCC tem produzido muitos anos de experiência trabalhando com algoritmos paralelos.
  • O reconhecimento de que a obtenção de alta performance é um trabalho árduo e requer pesquisadores para adotar uma atitude “do-it-yourself”.
  • Uma crescente dependência de ciência computacional que exige um alto desempenho computacional.
  • Total independência de qualquer tipo de fornecedor, tanto de software quanto de hardware.
  • Facilidade na administração e solução de nós. Se houver algum problema com um nó do cluster, não é necessária a manutenção deste para retornar ao trabalho.
  • Acessível a qualquer pessoa, inclusive em casa. Pode ser usado para estudos em programação paralela, com a vantagem de ter baixo custo.

A combinação dessas condições: hardware, software, experiências e expectativas, proveram o ambiente que fez o desenvolvimento dos clusters Beowulf um acontecimento natural evolutivo.

Crescimento do Beowulf

O projeto Beowulf cresceu a partir da primeira maquina Beowulf e também a comunidade tem crescido a partir do projeto da NASA. Como a comunidade Linux, o Beowulf é uma comunidade organizada de pesquisadores e desenvolvedores. Cada organização tem a sua própria agenda e o seu próprio conjunto de um determinado componente ou aspecto do sistema de Beowulf. Alguns sistemas foram construídos por cientistas computacionais e são usados em uma definição operacional, outros foram construídos como bancos de ensaio para o sistema de pesquisa e outros servem como uma plataforma barata para aprender sobre programação paralela.

A maioria das pessoas da comunidade Beowulf são independentes e auto-suficientes. A comunidade é realizada em conjunto pela vontade dos seus membros para partilhar idéias e discutir os seus sucessos e fracassos nos esforços de desenvolvimento.

O futuro do Beowulf será determinado coletivamente pelos indivíduos e organizações que contribuem para o projeto. Como tecnologias de microprocessadores continuam a evoluir, redes de alta velocidade tornam-se rentáveis e mais desenvolvedores para mover plataformas paralelas, o projeto vai continuar a avançar.

Características do Cluster Beowulf

O aumento da demanda por um alto poder de processamento em alguns setores do mercado aliado à busca de uma maior disponibilidade e escalabilidade para seus ambientes computacionais, tem direcionado os pesquisadores para a adoção de sistemas paralelos como alternativa para suprir estas exigências. O Cluster Beowulf se destaca porque alem de proporcionar alto desempenho, disponibilidade e escalabilidade, possui, como característica principal, o baixo custo de implementação.

O que distingue o Cluster Beowulf dos demais tipos são as seguintes características (que são aplicadas de acordo com a finalidade do cluster):
  • A conexão dos nós pode ser feita por redes do tipo Ethernet.
  • Existe um servidor responsável por controlar todo o cluster, principalmente quanto à distribuição de tarefas e processamento (pode haver mais de um servidor, dedicado a tarefas específicas, como monitoração de falhas). Este servidor é chamado de Front-end.
  • O sistema operacional é baseado Linux, sendo necessário que ele contenha todos os programas para cluster.
  • Pode-se usar computadores comuns, inclusive modelos considerados obsoletos.
  • Não é necessário usar equipamentos próprios para clusters. Basta equipamentos comuns a redes e os tradicionais PCs.

Alem de proporcionar benefícios financeiros, os Clusters Beowulf possuem também as seguintes características:
  • Escalabilidade absoluta: é possível conseguir Clusters com poder de processamento superior a maior maquina individual existente.
  • Escalabilidade incremental: mais maquinas podem ser adicionadas, se desejadas pelo usuário, para aumentar o poder de processamento.
  • Alta disponibilidade> como cada computador do Cluster é completo, a falha de um não compromete o funcionamento do todo.
  • Atualização com a tecnologia de ponta: como seus nós são construídos com computadores comuns, pode-se aplicar os melhores tipos de material disponíveis.
  • Flexibilidade de configuração: se a aplicação utilizar intensamente a rede para passagem de mensagens, parte do orçamento pode ser direcionada a oferecer uma infra-estrutura que melhore o meio de interconexão.

De maneira generalizada, o Cluster Beowulf permite a construção de sistemas de processamento que podem alcançar altos valores de gigaflops. Isso tudo com o uso de computadores comuns e de um sistema operacional com código-fonte livre, ou seja, alem de gratuito, pode ser melhorado para a sua finalidade. Tais características fizeram o Cluster Beowulf um tema muito explorado em universidade e claro, aplicado para diversos fins.

Entre os requisitos para o sistema operacional de um Cluster Beowulf, estão a necessidade de se ter às bibliotecas Parallel Virtual Machine (PVM) ou para Message Passing Interface (MPI). Ambos os tipos são usados para a troca de mensagens entre os nos do cluster, O MPI é mais avançado que o PVM, pois pode trabalhar com mensagens para todos os computadores ou para apenas um determinado grupo.

Quando um computador participa de um Cluster, recebe uma nova denominação: nó. Assim, dependendo da função do nó dentro do Cluster, um computador pode possuir o papel de nó principal ou de nó secundário, havendo a possibilidade de existir um ou mais nós principais interligados através de uma rede a muitos outros nós comuns.

Os nós principais (front-end) controlam o cluster, monitorando e distribuindo as tarefas. Eles desempenham duas funções importantes: funcionam como servidores de Network File System (NFS – Sistema de Arquivos de Rede) e como gateways para o ambiente externo ao Cluster. Como servidor NFS, os nós principais oferecem mecanismos para armazenar arquivos de usuários e arquivos dos demais nós do Cluster. No papel de gateways, eles permitem que os demais nós do Cluster, se necessário, possam acessar qualquer computador, justificando, assim, o porque de os nós principais possuírem duas interfaces de rede.

Os demais nós do Cluster, nós secundários (back-ends), executam os processos paralelamente, sendo esta a sua única função, ou seja, são exclusivamente dedicados para processamento das tarefas enviadas pelo nó principal. Como as tarefas são executadas de maneira paralelas, as aplicações devem ser escritas atentando-se para esta condição, a fim de se explorar ao Maximo esta arquitetura. Uma característica destes nós é a possível ausência de placa de vídeo, monitor ou teclado, barateando ainda mais o custo do sistema como um todo.

Uma rápida definição para Clusters Beowulf seria: Beowulf é uma tecnologia de cluster que agrupa computadores rodando GNU/Linux para formar um supercomputador virtual via processamento paralelo (distribuído).

Clique na imagem para ampliar

Arquitetura Beowulf

Servidor:
  • Administração e distribuição das tarefas
  • Interface com exterior
  • Responsável pela segurança
  • Chamado front-end
  • Normalmente é apenas um, mas em grandes clusters pode ser mais de um.
  • “Única máquina do cluster com periféricos”

Cliente:
  • Nós restantes
  • Configurados e controlados pelo servidor.
  • Normalmente sem teclados e mouse (às vezes sem disco rígido)
  • Não podem ser acessados pela rede externa
  • Login remoto a partir do servidor
  • Responsáveis pelo processamento dos dados

Rede dedicada:
  • Interliga nós
  • Normalmente Ethernet

Clique na imagem para ampliar


Funcionamento do Cluster Beowulf

O funcionamento é muito simples. A tarefa é separada em partes independentes, distribuídas nos vários nós que estão na estrutura do cluster, nos quais as informações são processadas, realizadas pela maquina que é designada como front-end do sistema.

Esse tipo de cluster parece maravilhoso, mas existe um pequeno detalhe que os tornam pouco úteis em situações que não necessitam de tanto poder computacional, pois ate é possível processar um numero fabuloso de dados, mas somente ao utilizar aplicativos desenvolvidos com suporte a arquitetura.

Construído de vários nós (clientes ou back-ends) controlados por um computador principal (front-end), ao qual se tem acesso direto, ligados por uma rede Fast Ethernet. O front-end distribui as tarefas e os back-ends realizam os cálculos que lhe são enviados. Como mostra a ilustração abaixo:


Clique na imagem para ampliar

Aplicações
  • Servidores Web de alto-desempenho – um cluster pode balancear a carga e aumentar a capacidade de resposta, quando o sistema estiver sob intensa utilização.
  • Base de Dados – Reduzir tempo de resposta.
  • Aplicações com inteligência artificial e automação – área que utiliza algoritmos que ocupam os recursos do sistema de uma forma intensiva e exponencial em relação á dimensão do problema como reconhecimento de padrões, redes neurais e máquinas de inferência.
  • Engenharia Genética – através do sequenciamento de DNA.
  • Computação Gráfica – Diminuir o tempo de renderização de imagens.
  • Analise de Elementos Finitos – cálculo de estruturas, navios, aviões e veículos Espaciais.
  • Exploração Sísmica – possibilidade de analisar grande conjunto dados gerados por levantamentos sismológicos e mapeamento de satélite.
  • Problemas de pesquisa básica – em química, física e engenharia, tais como mecânica quântica, estatística, química de polímeros, crescimento de cristais, dinâmica molecular, distribuições de conexões em circuitos VLSI entre outros.
  • Pesquisas militares – projetos de novas armas, simulação dos efeitos causados por novas armas, processamento de sinais de radares para comando de mísseis antibalísticos e geração automática de mapas.

Download: Cluster Bewoulf - Linux
Fonte: Wikipédia

Ja era de se esperar

Essa ja é uma noticia que não impressiona mais no mundo da informática. Basta um grande evento acontecer, seja ele trágico ou não, que pessoas más intencionadas utilizam esse contexto e suas "habilidades computacionais" contra a curiosidade das pessoas, que por falta de conhecimento, estão vulneráveis a tais atos mailiciosos.

Como divulgado na tarde do dia 25 de junho, o cantor Michael Jackson morreu devido à um ataque cardiaco. A curiosidade em torno da morte do cantor acabou se tornando um alvo fácil para hackers mal-intensionados como mosta a noticia abaixo do site Terra Tecnologia.

Especialistas alertam para o perigo de e-mails que prometem fotos e vídeos inéditos do ídolo pop, que podem contem malware e infectar o computador do usuário.

Segundo o site The Register, a empresa de segurança Sophos detectou um e-mail de spam poucas horas após a notícia da morte de Michael Jackson que supostamente oferecia mais informações sobre o ocorrido. A mensagem não contém links, mas o simples ato de responder ao e-mail dá aos hackers o controle sobre a conta do usuário, alerta a empresa.

Outros e-mails oferecem links para "vídeos inéditos" no YouTube, noticiou o Register. O usuário que clica no endereço é encaminhado para um site que instala um software malicioso em seu computador.

Essa é uma dura realidade do mundo da informática. Não importa qual foi o evento, se ele tem uma boa propagação será utilizado por pessoas más intencionadas para tentar extrair proveito da situação.

Testando o seu Anti Vírus

O post de hoje é uma maneira interessante para testar se o anti vírus instalado no seu computador está realmente configurado e funcionando corretamente.

Para isso devemos criar o seguinte arquivo:



Passo 1: Abra o bloco de notas (Iniciar > Executar > Notepad > Ok)

Passo 2: Copie e cole a seguinte linha

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Passo 3: Salve o arquivo com uma das seguintes extensões e um nome qualquer (Exemplo: Teste.exe)
  • .com
  • .txt
  • .zip (ou .rar)
  • .bat
  • .exe

Se o seu anti vírus estiver funcionando corretamente ele deverá impedir que você salve ou execute o arquivo. Ele deverá identificar com o nome Eicar Test File ou semelhante.


Eu fiz o teste e realmente funciona. Não se preocupe pois não é um vírus e sim uma maneira de testar se o seu antí vírus esta funcionando corretamente.


Dica extraida do Fórum Invaders.

terça-feira, 23 de junho de 2009

Pasta protegida por senha

Nesse post vamos ver como criar uma pasta protegida por senha a partir de um arquivo .bat. Antes de testar leia o tutorial todo pois a senha deve ser modificada de acordo com a sua escolha.

Vamos começar criando um arquivo no notepad com o seguinte código:
cls
@ECHO OFF
title Folder Privado
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Privado goto MDLOCKER
:CONFIRM
echo Tem certeza de que deseja bloquear a pasta (Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Privado "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Digite a senha para desbloquear pasta
set/p "pass=>"
if NOT %pass%== 123 goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Privado
echo Folder Unlocked successfully
goto End
:FAIL
echo Senha Invalida
goto end
:MDLOCKER
md Privado
echo Privado foi criada com sucesso
goto End
:End
Infelizmente eu não saberei explicar cada detalhe do código acima, já que esse tutorial não é de autoria própria e pelo fato de não compreender muito sobre esse tipo de programação. Mas para quem tiver interesse basta pesquisar no google sobre apostilas MS-DOS e arquivos .bat. Para saber mais sobre arquivos .bat visite tambem o nosso post Arquivos Batch.

Obs.: Uma coisa importante é a senha que está no código acima. Para alterar essa senha padrao (123) procure no código acima a seguinte linha de comando:
if NOT %pass%== 123 goto FAIL
Para alterar a senha basta trocar os caracteres 123 pela senha desejada.

Agora, basta salvar o arquivo txt como Locker.bat na pasta desejada. Um detalhe importante é que o código acima irá criar uma pasta chamada Privado e somente essa pasta será protegida. Portanto todo contéudo que deseja ser protegido deve ser adicionado nessa pasta.

Salvo o arquivo, clique duas vezes no arquivo Locker.bat. Uma pasta chamada Privado será criada. Abra novamente o arquivo Locker.bat e uma tela do MS-DOS irá abrir com a seguinte mensagem:


Clique na imagem para ampliar

Digite Y de yes e pressione a tecla .

Note que a pasta Privado está oculta. Ela só sera aberta quando o arquivo Locker.bat for aberto e a solicitação de senha aparecer como mostra a imagem a seguir.


Clique na imagem para ampliar

Ao digitar a senha correta a pasta será desbloqueada. Para bloquea-la novamente basta clicar duas vezes no arquivo Locker.bat e pressionar Y e em seguida .

Obs.: Faça um backup das informações que deseja ocultar, pois infelizmente o arquivo Locker.bat pode ser deletado, o que causará a perda dos dados. Caso saiba como proteger o arquivo de ser deletado, nos envie os passos de como fazer isso e estaremos postando aqui no blog para que todos tenham acesso a essa informação.

Essa dica foi retirada do Fórum Invaders com créditos ao membro do fórum

Introdução ao IPv6

Depois de MUITO tempo retornei. É não deisiti ainda e nem pretendo. Bom a dica de hoje é muito interessante pois é relacionada à um assunto que é recente e acredito que ainda em fase de implementação. Vamos falar um pouco sobre IPv6. A seguir irei apresentar parte de um trabalho que eu fiz na faculdade em relação ao assunto. Um pouco grande mas é um assunto interessante.

O que é IPv6?

O Ipv6 (Internet Protocol Version 6), também conhecido como Ipng (Internet Protocol Next Generation), é a nova versão do Protocolo da Internet. Foi desenvolvido ao longo da ultima década pela IETF (Internet Engineering Task Force). Vem sendo utilizado há algum tempo, mas agora sua implementação deve ser acelerada para suprir as necessidades que o mercado vem exigindo.

O Ipv6 dispõe de 128 bits de endereços (2128), fazendo com que o número total de dispositivos conectados a Internet seja de 340.282.366.920.938.463.463.374.607.431.768.211.456, uma capacidade muito mais elevada do que o Ipv4, que dispõe apenas de 32 bits de endereços (232), gerando um espaço de aproximadamente quatro bilhões (4.294.967.296).

Alem da grande quantidade de endereços Ip, unicast (um determinado dispositivo pode ter mais de um endereço. Para tanto, tais endereços são divididos em grupos) e multicast (um único dispositivo consegue identificar várias interfaces na rede, permitindo o envio individual de pacotes), um novo tipo foi criado, o anycast (este tipo é uma variação do multicast, onde o endereço IP pode estar atribuído a mais de uma interface, ao invés de uma individual). O anycast referencia um grupo de hosts, mas entrega o pacote a apenas um, o mais próximo da origem conforme o protocolo de roteamento.

Uma das grandes preocupações dos projetistas foi assegurar a velocidade, por isto algumas características do processamento dos pacotes nos roteadores foram adaptadas a fim de manter viável a realidade onde a transferência de som, vídeo e uso de aplicações de tempo real são cada vez mais comuns. A primeira grande mudança foi fixar o tamanho do cabeçalho, que agora tem 40 bytes. Essa medida torna mais veloz o processamento, pois é possível saber de antemão o que cada bit representa sem precisar ler todos os que o precedem. Abaixo segue uma imagem do novo cabeçalho Ipv6 comparado ao cabeçalho do Ipv4.


Clique na imagem para ampliar
  • Versão: (4 bits) este campo identifica a versão do protocolo usado para criar o pacote.
  • Priority (Classe de tráfego): (8 bits) é equivalente ao campo Tipo de Serviço do IPv4, que classifica o tipo do pacote.
  • Rótulo de fluxo: (20 bits) serve para identificar um fluxo.
  • Comprimento da carga: (16 bits) este é o número de bytes de dados contidos no pacote
  • após o cabeçalho.
  • Próximo cabeçalho: (8 bits) informa o protocolo que deve tratar o conteúdo do pacote.
  • Limite de saltos: (8 bits) é o número máximo de roteadores que o pacote deve passar, a
  • cada roteador este campo é decrementado, quando chega em zero o pacote é descartado.
  • Endereço de origem: (128 bits) origem do pacote.
  • Endereço de destino: (128 bits) destino do pacote.

O cabeçalho Ipv6 é bastante simples e enxuto em relação ao Ipv4, qualquer informação adicional é transmitida encapsulada no pacote e informada através do campo próximo cabeçalho.

O Ipv6 define diversos tipos de extension headers, que podem ser usadas para incluir informações adicionais no cabeçalho de um pacote Ipv6. As extension headers definidas são:
  • Opção de destino (Destination Option header)
  • Opção de salto-a-salto (Hop by Hop Options header)
  • Roteamento (Routin header)
  • Autenticação (Authentication header)

O cabeçalho de opção de destino pode ser incluído num pacote para carregar a seqüência de uma ou mais opções a serem processadas somente quando o pacote chegar ao seu destino final. O cabeçalho de opção salto-a-salto pode ser incluído para carregar a seqüência de uma ou mais opções, mas essas opções são processadas, além do destino final, a cada roteador intermediário que recebe e direciona o pacote. O cabeçalho de roteamento é particularmente útil para o MIpv6, é similar ao Source Router Options, no entanto no MIpv6 o pacote não é processado a cada salto. Além disso, o nó no destino final que recebe o pacote não é obrigado a rotear pacotes à fonte. O cabeçalho de autenticação permite o pacote incluir informações adicionais de autenticação. A inclusão dessa opção permite ao receptor verificar a autenticidade do transmissor do pacote, e também protege contra modificações do pacote enquanto em trânsito, já que o pacote modificado seria visto pelo receptor como um pacote falsificado.

Com a definição do novo formato do cabeçalho, o IETF optou por separar os cabeçalhos, ou seja, um cabeçalho para host e outro para router, tornando assim a tarefa de roteamento mais simples, permitindo a adoção de uma política de roteamento mais elaborada e segura. Com cabeçalhos diferenciados, os pacotes passam a seguir a seguinte seqüência.

Exemplo de conexão de Link-Local:
  • Cabeçalho IPv6
  • Cabeçalho TCP
  • Dado


Clique na imagem para ampliar

Exemplo de conexão de Site-local:
  • Cabeçalho de IPv6
  • Cabeçalho de roteamento
  • Cabeçalho TCP
  • Dado


Clique na imagem para ampliar

Exemplo de conexão de Link-Global com criptografia e fragmentação de cabeçalho:
  • Cabeçalho IPv6
  • Cabeçalho de roteamento
  • Cabeçalho de fragmentação + opções (AH/ESP)
  • TCP
  • Dado


Clique na imagem para ampliar

Outra mudança realizada nesse protocolo foi à criação de um novo conceito, o fluxo. Um fluxo é uma seqüência de pacotes para os quais é necessário um tratamento especial, como para serviços que requerem alta prioridade tais como serviços de tempo real, transmissão de vídeo ou uma conexão entre dispositivos move onde a qualidade durante a transmissão deve ser assegura. Dados que pertencem a aplicações tradicionais como requisições HTTP ou transferência de arquivos não precisam participar do fluxo.

Como mencionado anteriormente, o espaço de endereçamento do Ipv6 é muito maior do que o do Ipv4, dentro desse espaço enorme, uma pequena parte é reservada para todos os Ipv4 atualmente existentes, e outra pequena parte é reservada para o Link-Local address, que não são endereços “roteáveis”, mas que garantem unicidade em um certo enlace. Os nós presentes no mesmo enlace podem se comunicar uns com os outros mesmo sem usar roteadores, utilizando-se desse Link-Local address. Os nós se descobrem através de um protocolo chamado ND (Neighbor Discovery Protocol, RFC 2461). Através desse protocolo, também pode-se determinar roteadores e prefixos locais. O NDP para Ipv6 pode ser caracterizado como uma versão muito melhorada do ARP (Address Resolution Protocol) e do ICMP (Internet Control Message Protocol).

O Ipv6 é um padrão que promete resolver vários problemas da internet, inclusive alguns relacionados à segurança que terá uma breve abordagem no decorrer deste trabalho. Ainda em fase de teste, esse novo tipo de IP deve começar a ser usado em alta escala dentro de alguns anos.

Características do Ipv6
  • 128 bits de espaço de endereçamento
  • Arquitetura de endereçamento melhor estruturada
  • Suporte para "datagramas jumbo" (o IPv4 suporta somente 64 Kbytes no tamanho do pacote)
  • Mobilidade
  • Configuração plug-and-play (stateless address config)
  • Mecanismos de segurança, incluindo encriptação e autenticação
  • Suporte para multicasting e anycasting;
  • Suporte a aplicações multimídia em tempo real.
  • Segurança incorporada ao protocolo
  • Oito Hexatetos
  • Simplificação do cabeçalho
  • Distinção entre cabeçalho de host e router
  • Múltiplos endereços por interface de rede
  • Unicast: Link-local, Site-local, Link-Global
  • Multicast
  • Anycas
  • Tempo de vida no endereço IPv6
  • Conexão end-to-end
  • Novo modelo de roteamento
  • Sem Broadcast
  • Sem máscara de sub-redes
  • Sem NAT

Formato do endereço Ipv6

Como falado anteriormente, o endereço Ipv6 é composto por 128 bits. É escrito em formato hexadecimal separado por dois pontos (:), representados da seguinte forma:
  • Representação: x:x:x:x:x:x:x:x (Onde x representa o conjunto de 16 bits).
  • Endereço completo: fe80:0000:0000:0000:260:97ff:fefe:9ced
  • Endereço compactado: fe80:0:0:0:260:97ff:fefe:9ced - fe80::260:97ff:fefe:9ced
  • Localhost: ::1
  • Não especificado: ::

A figura abaixo mostra uma comparação simples entre uma rede Ipv4 e uma rede Ipv6:


Clique na imagem para ampliar

Com um espaço de endereçamento maior, o protocolo Ipv6 permite que um dispositivo de rede tenha múltiplos endereços por interface de rede, tornando cada conexão uma conexão diferente.

Unicast:

Responsável por 3 conexões simultâneas na mesma interface.
  • Link-Local: responsável por conexões ponto-a-ponto sem roteamento
fe80:0000:0000:0000:260:97ff:fefe:9ced
  • Site-Local: responsável por conexões do mesmo site ou nó de rede, sendo roteado apenas na rede interna sem propagação na Internet. Equivalente a uma rede privada 10.0.0.
fec0:0000:0000:0000:260:97ff:fefe:9ced
  • Link-Global: responsável por conectar um site ou host a internet
2001:0200:03b8:0000:260:97ff:fefe:9ced

Multicast:

Responsável por conexões de transmissão única para vários.
  • Link-Local: formado por prefixo de multicast + sufixo da interface de rede
ff02:0000:0000:0001::fffe:9ced (Completo)
ff02::1::fffe:9ced (Comprimid
  • Site-Local: composto por prefixo de multicast de router + sufixo de rede de Site-Local
ff05:0000:0000:0002::fffe:9ced (Completo)
ff05::2::fffe:9ced (Comprimido)
  • Link-Global: composto por prefixo de multicast de router + sufixo de rede de Link-Global
ff02:0000:0000:0001::ff9e:cc1d (Completo)
ff02::1::ff9e:cc1d (Comprimido)

Anycast

Equivalente a um endereço de Unicast Exemplo: Servidor de DNS ou serviço de tempo real que necessita de uma rota alternativa, para transporte de pacotes por rotas diferentes, outros em discussão.

Porque o Ipv6 é necessário

O principal motivo da criação de uma nova versão de Protocolo da Internet é a expansão do espaço de endereçamento disponível, possibilitando a conexão de bilhões de novos dispositivos na rede.

Devido ao crescimento do número de dispositivos que possibilitam a conexão com a internet, prevê-se que o número de endereços de IP do protocolo Ipv4 não será suficiente para suprir toda essa demanda de novos dispositivos, já que é impossível usar um mesmo IP simultaneamente na internet. Cada site, usuário ou serviço necessita de um IP exclusivo.

As previsões indicam que os endereços livres Ipv4 se esgotarão na IANA ((Internet Assigned Numbers Authority) Organização mundial que funciona como a máxima autoridade na atribuição dos "números" na Internet, como portas e IPs) por volta de 2010 e 2011. Sem novos números IP ficaria muito complicado conectar novos usuários à internet. A IANA redistribui os números para entidades regionais, que por sua vez, fazem o mesmo para entidades nacionais, ou os designam diretamente para usuários finais. Por exemplo, a IANA assinala um bloco de números para o LACNIC, que é a entidade responsável pela distribuição na América Latina e no Caribe. O LACNIC assinala uma parte desse bloco para o NIC.br, que é o responsável por distribuí-lo no Brasil. Finalmente, o NIC.br designa blocos de endereços IP para os usuários finais ou provedores Internet. Entenda-se então que quando os endereços acabarem no IANA, ainda haverá endereços no LACNIC e no NIC.br, mas esses também se acabarão após 1 ou 2 anos.

Sem novos números IP ficaria muito complicado conectar novos usuários à Internet. Com o Ipv6, que dispõe de uma quantidade de endereços muito maior que o Ipv4, como veremos a seguir, esses endereços deixarão de ser um recurso critico, pois estarão disponíveis de forma abundante. Com isso o crescimento da internet não será prejudicado.

Bom, essa foi uma "pequena" introdução ao IPv6. Estarei disponibilizando o trabalho completo que fiz sobre Mobile IPv6 para que todos possam dar uma olhada e também uma dica interessante que encontrei no blog do Marcolino sobre um curso online de introdução ao IPv6 do NIC.br gratuito.

Segue os links:

domingo, 10 de maio de 2009

Qual deles você é?


Humor para começar bem a semana =D



Clique na imagem para ampliar

sexta-feira, 8 de maio de 2009

Boston Dynamics BigDog Robot

Bom, acabei de falar que o blog está passando por momentos complicados devido a falta de tempo para atualizar porém lembrei de algo muito interessante que um dos meus professores (Fabio Aparecido Cavarsan - Sistemas Microprogramados) comentou uma vez na sala de aula.

Essa é para quem gosta da área de robótica e parte de algoritimos e programação também.

O video que vou mostrar aqui é uma invenção muito interessante da Boston Dynamics. Eles criaram um robo parecido com uma Mula mesmo, porém sem a cabeça, que é dotado de uma inteligencia artificial extremamente interessante. É impressionante a agilidade que a Mule Army tem. Como voces poderam ver, ela consegue se mover com muita facilidade em qualquer tipo de terreno, podendo ate mesmo escalar pedras, andar sobre o gelo e se equilibrar mesmo quando tentam derruba-la com um chute. A ideia principal, é um robo que pudesse carregar os equimamentos dos soldados na guerra tirando o peso das muchilas que os soldados são obrigados a carregar.

Não tenho muito o que falar sobre o robo pois não fiz um estudo aprofundado, mas o video é muito interessante (tirando o barulho estranho). Vale a pena conferir.





Realmente é uma criação muito bem planejada e de uma complexidade muito grande. Afinal, fazer um robo com a Inteligencia Artificial mostrada nos video não deve ser fácil.

Template by - Abdul Munir | Daya Earth Blogger Template