CISCO GUIA DE ESTUDOS - MODELO DE REFERÊNCIA OSI - APLICAÇÃO [PARTE2]

Camada de Aplicação - Interação com usuário.

Bem, vamos começar a falar da camada de APLICAÇÂO (Aplication Layer). Ela é a camada de nº 7 da pilha de protocolos (é muito importante saber à ordem das camadas, pois em muitos lugares elas são referenciadas pelo numero/nível) e é responsável pela interação com o usuário. Podemos exemplificar como serviço e aplicação desta camada servidor web e navegadores, respectivamente.

Particularmente, gosto de discutir neste tópico os paradigmas atuais envolvendo cliente-servidor; abaixo vou dividi-los em tópicos:

1. Cliente – Servidor: nesta arquitetura, nós temos um nó central que está apto a atender requisições dos serviços por ele prestados. Este modelo gera uma dependência entre clientes e o servidor, criando assim um ponto de falha, o próprio servidor, uma vez que ele pare, por qualquer motivo, o serviço é retirado imediatamente da rede. É preciso entender que apesar destas desvantagens este modelo é relativamente fácil de ser administrado, concedendo maior controle ao administrador da rede sobre os recursos ofertados e os acessos realizados a estes. Exemplo: Servidor Web – Browser (Firefox), onde o browser faz requisições ao servidor que as responde, nunca acontecendo o inverso.

2. Peer-to-Peer (P2P): esta arquitetura, por sua vez, possui uma estrutura distribuída, ou seja, descentralizada; onde o cliente se torna servidor quando requisitado e servidor se torna cliente quando faz uma requisição. É extremamente difícil de administrar, uma vez que não se tem acesso a todos os nós da rede, podendo, assim, um nó se desconectar sem aviso ou autorização do administrador, o que deixa um arquivo ou serviço com sua disponibilidade comprometida.

3. Híbrido : O modelo que realmente é utilizado quando se fala de Peer-to-Peer. Ele é equivalente ao P2P, apresentado acima, acrescentado apenas de um servidor de status/busca e uma peculiaridade. Neste servidor, ficam contidas informações dos nós conectados, arquivos, serviços ativos no momento. O grande diferencial deste modelo é a distribuição de carga - uma vez que o modelo é distribuído, dividindo as requisições para diferentes nós - e um sensível aumento no controle da rede em relação ao modelo anteriormente apresentado (o servidor pode filtrar e indicar recursos disponíveis na rede). Exemplo: MSN. Quando você “starta” o aplicativo, ele se conecta ao servidor onde busca informações de seus contatos para saber quais estão disponíveis (modelo cliente-servidor) e, após o inicio do bate-papo, nós temos um contato ponta a ponta (modelo P2P).

A camada de aplicação não se resume apenas a como é disponibilizado e acessado os recursos, mas existem características que são relevantes a casos particulares e que serão abordadas com o andar dos estudos. Por agora, é preciso ter os conceitos apresentados acima de maneira clara. Vamos continuar com as apresentações das camadas do modelo OSI e, à medida que formos conhecendo cada camada, serão apresentadas as interações entre elas.

Ronney de Paula da S.

Tel:(27)9243-7752 - Claro / ronneyps@hotmail.com / ronney.serafim@gmail.com /

Certificação Linux LPI - Guia de Estudos + Simulado

Olá amigos,

estão se preparando para certificações LPI (101 e/ou 102)?

Se SIM então nada melhor do que ter um bom guia de estudos, fazer um simulado destas certificações e de quebra saber seus pontos fracos e fortes...

tudo isso você encontra nesse site: www.certificacaolinux.com.br

Simulado LPI (101 e/ou 102): Simulados PLI

Guia de Estudos para LPI: Guia de Estudos LPI


Abraço a todos.

Entenda um pouco sobre o IPv6

O CGI.br e o NIC.br, desenvolveram um curso online para estudantes, profissionais e pessoas interessadas a aprenderem, entre outras coisas, o que é o IPv6, qual o motivo da sua criação, questões de segurança do IPv6 e como se dará a transição entre o IPv4 e o IPv6.

Para fazer o curso acesse: http://curso.ipv6.br

Um abraço

Encontrando Software grátis

Quantas vezes você precisou daquele programa, mas não o tinha pois era um software pago, muitas vezes muito caro, e acabou não fazendo determinado trabalho? Inúmeras vezes, não é?

Navegando pela Internet, achei o site Open Source as Alternative que apresenta uma quantidade enorme de correspondências entre software pagos e grátis.

Teste e depois dê sua opinião.


Abraço a todos.

Conexão MySQL + PHP

Neste post vamos mostrar como é simples fazer acesso a banco utilizando o PHP.

Primeiro vamos criar o nosso banco e acrescentar alguns valores para teste:

Criando tabela:
CREATE TABLE `alunos` (
`id_aluno` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nome_aluno` VARCHAR( 40 ) NOT NULL ,
`idade_aluno` TINYINT NOT NULL ,
`curso_aluno` VARCHAR( 40 ) NOT NULL
);

Inserindo valores:
INSERT INTO alunos (nome_aluno, idade_aluno, curso_aluno) VALUES
('Douglas Nascimento', 23, 'Redes de Computadores'),
('José Mário', 45, 'Análise de Sistemas'),
('Adriano Vieira', 24, 'Redes de Computadores'),
('Angélica Davel', 18, 'Análise de Sistemas');

Vamos criar um arquivo para testar a conexão com o banco de dados e executar um comando SQL de busca. Nosso código é o seguinte:
 1 <?php
2 //conecta e seleciona banco de dados
3 $conexao=mysql_connect("localhost", "root", "") or die("Conexão falhou");
4 mysql_select_db("bancoteste",$conexao) or die("Erro selecionando banco");
5
6 //comando SQL
7 $sql = 'SELECT * FROM alunos';
8
9 //executando comando SQL
10 $resultado = mysql_query($sql, $conexao);
11
12 //exibindo resultado
13 while($dados = mysql_fetch_assoc($resultado)) {
14 echo 'Nome: ' . $dados['nome_aluno'] . '<br/>';
15 echo 'Idade: ' . $dados['idade_aluno'] . '<br/>';
16 echo 'Curso: ' . $dados['curso_aluno'] . '<br/>';
17 echo '<hr/><br/>';
18 }
19 ?>
A função mysql_connect (linha 3) é utilizada para fazermos a autenticação no servidor de banco de dados. Seus parâmetros são os seguintes:

mysql_connect("endereco_do_banco_de_dados", "usuario", "senha");

Esta função retorna um identificador para a conexão criada, atribuimos então este valor para variável $conexao.

A seguir temos a função mysql_select_db (linha 4), ela serve para selecionar o banco que queremos utilizar. Esta função tem a seguinte sintax:

mysql_select_db("nome_do_banco", "identificador_da_conexao");

Na linha 10 usamos a função mysql_query que recebe os seguintes parâmetros:

mysql_query("comando_SQL", "identificador_da_conexao");

Esta função pode executar qualquer comando SQL e retorna, no caso de um SELECT, os dados solicitados do banco e códigos de erro para outros comandos como o INSERT INTO. Veremos o tratamento de erros em um post futuro. Neste exemplo passamos o identificador da função, armazenado na variável $conexao, mas ele não é obrigatório.

Na linha 13 imprimimos o resultado da consulta com o auxílio da função mysql_fetch_assoc. Ela retorna um array contendo uma linha da consulta (armazenado, no nosso exemplo, na variável $dados). Cada índice do array pode ser indexado pelo nome da coluna da tabela, ao invés do número da posição no array (por exemplo, 0, 1, 2, 3, ...). Esta é uma boa prática, pois, desta forma, temos certeza do valor que estamos utilizando. Podemos ver isso nas linhas 14, 15 e 16.

Para a função mysql_fetch_assoc passamos apenas o resultset, que é o resultado da função mysql_query, armazenado na variável $resultado.

Bom, espero que tenham gostado. Um abraço a todos =)

CISCO – GUIA DE ESTUDO – MODELO DE REFERÊNCIA OSI [PARTE 1]






Histórico e Motivação

Para que criar um modelo?

Bem para responder esta pergunta é preciso entender o contexto histórico em que ela foi apresentada. Em meados da década de 70 existiam diferentes fabricantes de equipamentos, o problema é que cada um destes tinha sua própria maneira de fazer a comunicação entre seus equipamentos, cada um deles desenvolvia seus próprios protocolos e os mantinham em sigilo. Esta situação criava uma dependência entre as empresas fornecedoras e seus clientes e muitas das vezes isto se tornava um grande problema; como por exemplo: Se uma empresa X optasse por um solução IBM (International Business Machines), uma empresa Y por uma solução DEC (Digital Equipment Corp., hoje HP) e posteriormente a empresa Y comprasse a X teria que levar em consideração o gasto com toda reestruturação da rede X uma vez que soluções IBM não se intercomunicava com as da DEC.

Problema apresentado, então qual a solução? Para respondermos esta pergunta precisamos contemplar outro tema revolucionário, os padrões abertos. A definição do que vem a ser um padrão aberto de acordo com UNIÃO EUROPÉIA é:

  1. O padrão foi adotado e será mantido por uma organização sem fins lucrativos, e seu desenvolvimento contínuo irá ocorrer com base em um processo de tomada de decisão aberto e acessível a todas as partes interessadas (através de consenso ou decisão por maioria, etc.).
  2. A norma foi publicada e seu documento de especificação está disponível gratuitamente, ou através de uma taxa simbólica. Deve ser permitido a todos copiar, distribuir e utilizá-la gratuitamente ou a uma taxa simbólica.
  3. A propriedade intelectual, ou seja, patentes eventualmente presentes - do padrão (ou de partes dele) está disponível irrevogavelmente através de uma base livre de royalties.
  4. Não há restrições sobre a reutilização do padrão.

Entendendo o que significa o termo “Padrão Aberto”, fica fácil formular uma resposta para nossa pergunta, uma vez que fabricantes sigam um padrão aberto os componentes estarão aptos a se comunicar e trabalhar de forma cooperativa para o funcionamento da rede e para isso a ISO (International Organization for Standardization) começou a desenvolver a pilha de protocolos do modelo de referência OSI (Open Systems Interconnection).

De que forma o modelo soluciona o problema apresentado?

O modelo OSI é um modelo de referência, ou seja, ele define de que forma dados gerados por uma aplicação em uma determinada máquina devem ser transmitidos através de um meio específico para uma aplicação em outra máquina [Marco A. Felippetti, pg 39].

O modelo propôs uma padronização em como estes dados seriam transmitidos independentes do fabricante, entende-se assim que qualquer equipamento de rede fabricado com base no parâmetro de referência OSI estaria apto a se comunicar com outro fabricado dentro dos mesmos princípios. Sendo assim o exemplo acima teria uma solução simples caso tanto equipamentos da IBM quanto os da DEC fossem fabricados de acordo com o modelo OSI eles seriam capazes de se comunicar.

Modelo OSI

O modelo OSI é dividido em camadas sendo cada uma delas responsável por “uma” das tarefas para prover a comunicação entre dispositivos. Existe no modelo sete camadas, são elas:

  1. Aplicação (Application Layer) – Provê a Interface com usuário.
  2. Apresentação (Presentation Layer) – Trata da semântica, compressão/descompressão, criptografia e tradução dos dados.
  3. Sessão (Session layer) – Gerencia o “diálogo” entre as portas lógicas e mantém a separação dos dados de diferentes aplicações.
  4. Transporte (Transport Layer) – Provê a comunicação confiável (ou não) e executa checagem de erros antes da retransmissão dos segmentos.
  5. Rede (Network Layer) – Define e gerencia o endereçamento lógico da rede (ex. IP).
  6. Enlace (Data-Link Layer) – Acomoda os pacotes em “quadros” através do processo de encapsulamento. Detecta erros, porém não os corrige.
  7. Fisica (Physical Layer) – Responsável pela movimentação dos bits entre as pontas e pelas definição das interfaces, especificações elétricas e de pinagem dos cabos.


Nos próximos posts vou falar de cada camada individualmente e detalhadamente. Pessoal, gostaria de lembrar que conhecer bem o modelo OSI e TCP/IP não é um diferencial para os profissionais da área e sim um pré-requisito. Este conhecimento é FUNDAMENTAL para a certificação da CISCO, por isso passaremos um bom tempo nessas duas pilhas de protocolos.


Ronney de Paula da S.

Tel: (27)9243-7752 - Claro / ronneyps@hotmail.com / ronney.serafim@gmail.com /

CISCO – GUIA DE ESTUDOS – MATERIAL DE ESTUDO



Pessoal, hoje vou postar o material que utilizarei como referência para nosso guia de estudo. Segue abaixo:

1 - CCNA 4.1 Guia Completo de Estudo, Marco Aurélio Felippetti

Este livro é genuinamente brasileiro e considerado um dos melhores guias de preparação para o CCNA. Será nosso livro de referência.

2 - Cisco CCNA. Guia de Certificação do Exame CCNA, Wendell Odom. Alta Books

O guia oficial da Cisco para o exame servirá de apoio para buscarmos aprofundamento em determinados temas.

3 - Mauricio Bento Ghem http://www.bentow.com.br/
 
Usaremos este blog apesar de não ser tão divulgado quanto o já conhecido http://blog.ccna.com.br/. Ele traz tópicos interessantes para o nosso preparo, além de podermos ter contato direto com o autor Mauricio B.G. para tirarmos dúvidas (já certificado CCNA).

4 - HD do blog do Mauricio B.G. http://www.4shared.com/dir/12780154/8dee2034/sharing.html

No HD, vamos encontrar o simulador Packet Tracer 5.1 software que será muito importante para testarmos e concretizarmos conceitos adquiridos com os estudos.

5- Post do Blog Bentow, .http://www.bentow.com.br/2009/03/23/instalacao-do-gns3-dynamips-dynagen-gui/,
 
Encontraremos neste post o tutorial para instalação do emulador Dynamips que também usaremos para ambientarmos os estudos.

6 - http://blog.ccna.com.br/
 
Blog referência para brasileiros que estão se preparando para certificação. Possui muito material interessante e pode se tornar um ponto para buscar experiência com aqueles que já se certificaram.
 
Ronney de Paula da S.

Tel: 92437752 - Claro / ronneyps@hotmail.com / ronney.serafim@gmail.com

CISCO - GUIA DE ESTUDOS - APRESENTAÇÃO

Quem sou?

Bem, meu nome é Ronney de Paula da S., sou estudante de Tecnologia em Redes de Computadores do IFES e Técnico em Informática também pelo IFES. Atualmente, trabalho com telefonia VoIP no setor Técnico da Diskavontade e participo do desenvolvimento de um sistema WEB para gerenciamento e apoio a decisões da coordenadoria de informática do IFES; projeto este desenvolvido pela Conecta Jr (Empresa Junior de consultoria).

Qual meu projeto no grupo Beagle Network?

Trabalharei com um guia de estudo para certificação CCNA (Cisco Certified Network Associate). Quando falo isto, a primeira pergunta é: “ Mais um?” Sim! A diferença é o que eu quero com este guia. Pretendo com ele desenvolver um grupo de estudos, ou seja, criar um ponto de referência para alunos que estejam se preparando para o exame da CISCO, o CCNA. Aqui será um ponto importante para tirarmos dúvidas e debatermos tópicos referentes ao exame.

Algo mais?

Sim. Hoje sou um entusiasta da telefonia VoIP e estarei trabalhando para trazer novidades sobre a tecnologia. Além disso, ajudarei o grupo Beagle Network em outros projetos.

Agradecimentos...

Queria, neste primeiro post, agradecer a oportunidade de participar do grupo ao Adriano Vieira, pois foi ele que me apresentou ao Wancleber Vieira o qual posteriormente me incluiu no Beagle Network. Estarei trabalhando para que este projeto seja referência e atinja os objetivos já traçados pelo grupo.


Ronney de Paula da S.

Tel: 27-92437752 - Claro / ronneyps@hotmail.com / ronney.serafim@gmail.com /

100Gb Ethernet. Será?

A Alcatel-Lucent anunciou lançamento para 2010 de uma tecnologia que é capaz de ampliar a velocidade de redes que rodam a 10Gb para 100Gb. Essa tencologia é denomidada F2P. Outra vantagem oferecida é a diminuição no consumo de energia que cai para quatro watts por gigabit.

A Alcatel informou que fará uma apresentação da tecnologia até o final de 2009, mas essa tecnologia só estará disponível a partir de 2010.

PHP - Programando orientado a objeto


Às vezes me aventuro em querer programar, e uma das linguagem que mais gosto é o PHP. Até pouco tempo eu não sabia que com PHP era possível programar orientado a objetos. Poiszé...

Fiz um exemplo simples para mostrar como utilizar o PHP desta forma.

Criamos 4 classes como mostra o diagrama abaixo:

Código da classe Pessoa:
<?php
include_once "Curso.php";

class Pessoa {
private $nome;
private $idade;
private $cpf;
private $curso;

public function Pessoa() {

}

public function getNome() {
return $this->nome;
}
public function setNome($nome) {
$this->nome = $nome;
}

public function getIdade() {
return $this->idade;
}
public function setIdade($idade) {
$this->idade = $idade;
}

public function getCPF() {
return $this->cpf;
}
public function setCPF($cpf) {
$this->cpf = $cpf;
}

public function getCurso() {
return $this->curso;
}
public function setCurso($curso) {
$this->curso = $curso;
}
}
?>

Código da classe Aluno:
<?php
include_once "Pessoa.php";

class Aluno extends Pessoa {
private $notas;

public function Aluno($notas=null, $curso=null) {
$this->setNotas($notas);
$this->setCurso($curso);
}

public function getNotas() {
return $this->notas;
}
public function setNotas($notas) {
$this->notas = $notas;
}
}
?>

Código da classe Professor:
<?php
include_once "Pessoa.php";

class Professor extends Pessoa {
private $salario;

public function Professor($salario=null, $curso=null) {
$this->setSalario($salario);
$this->setCurso($curso);
}

public function getSalario() {
return $this->salario;
}
public function setSalario($salario) {
$this->salario = $salario;
}
}
?>

Código da classe Curso:
<?php
class Curso {
private $nome;
private $disciplina;

public function Curso($nome=null, $disciplina=null) {
$this->setNome($nome);
$this->setDisciplina($disciplina);
}

public function getNome() {
return $this->nome;
}
public function setNome($nome) {
$this->nome = $nome;
}

public function getDisciplina() {
return $this->disciplina;
}
public function setDisciplina($disciplina) {
$this->disciplina = $disciplina;
}

}
?>

Código da página index.php:
<?php
include_once "Aluno.php";
include_once "Professor.php";

$curso = new Curso("Redes de Computadores", "Projeto de Redes");

$aluno = new Aluno();
$aluno->setCurso($curso);
$aluno->setNome("Wekler Sarmento");
$aluno->setIdade(24);
$aluno->setCPF("333333333-33");
$notas = array(0, 20, 80, -10);
$aluno->setNotas($notas);

$professor = new Professor("1,00", "Projeto de Redes");
$professor->setNome("Gilberto Sudré");
$professor->setIdade(35);
$professor->setCPF("222222222-22");
$professor->setCurso($curso);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv=
"Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body style=
"font-family:arial;">
<h4>:: Aluno</h4>
<p>

Nome do aluno: <?php echo $aluno->getNome();?><br>
Idade: <?php echo $aluno->getIdade();?><br>
CPF: <?php echo $aluno->getCPF();?><br>
Curso: <?php echo $aluno->getCurso()->getNome();?><br>
Notas na disciplina <?php echo $aluno->getCurso()->getDisciplina();?>:
</p>
<p style=
"margin-left: 40px;">
<?php
foreach($aluno->getNotas() as $nota) {
echo $nota."<br>";
}
?>
</p>
<h4>:: Professor</h4>
<p>

Nome professor: <?php echo $professor->getNome();?><br>
Salário: R$ <?php echo $professor->getSalario();?><br>
Curso: <?php echo $professor->getCurso()->getNome();?><br>
Disciplina: <?php echo $professor->getCurso()->getDisciplina();?><br>
</p>
</body>
</html>

Observe que para chamar um método de um objeto usamos o símbolo "->" (sem aspas). No diagrama mostrado acima as classes Aluno e Professor herdam da classe Pessoa. Para criarmos esta relação no código, usamos a palavra extends, da mesma forma como na linguagem Java. Mas antes é preciso incluir o arquivo que contém a classe Pessoa. Usamos então o método include_once. A diferença do include para o include_once é que este último somente irá carregar o arquivo uma vez.

Temos também o encapsulamento, comum em várias outras linguagens: private, public e protected. O encapsulamento modifica a visibilidade, ou acesso, de um método ou variável.
Com o private, o método ou váriável é visível apenas dentro da própria classe. O public torna visível para qualquer classe ou página. O encapsulamento protected torna visível apenas para as classes que estão relacionadas.

Bom, uma braço pessoal e quem souber de uma ferramenta online que formate o código fonte para ser postado por favor me diga =]

Um abraço

Um pouco sobre criptografia

As decepções da vida não é?!!!

Caso 1: Aquele seu amigão do peito, parceiro de quase todas as horas, mandou um e-mail pra sua namorada contando da pulada de cerca no último feriado, qdo supostamente devido a um forte resfriado, vc não foi vê-la e estava de cama.
Acalme-se! Antes de dar uma lição no seu amigo da onça, certifique-se de que foi realmente ele quem enviou o email dedo-duro!
Ahh, o endereço era dele? Infelizmente isso não significa muita coisa.

Caso 2: Vc passou dias sem dormir, queimando os últimos neurônios disponíveis para impressionar o seu chefe com aquela idéia para a reorganização do seu setor, sonhando até com uma promoção. Trabalha até a madrugada e envia para o email do boss o projeto milionário todo prontinho. Na manhã seguinte, todos recebem a notícia que o Fulano acaba de ser promovido por apresentar a solução mais criativa para a reestruturação do setor. Nada de errado, afinal a idéia foi sua e vc batalhou por ela, porééémmmm, o Fulano não é vc! o.O

Estes cenários ridículos ilustram a falta de segurança no envio/recebimento de mensagens por email. Geralmente não há como autenticar o remetente de uma mensagem e o monitoramento de tráfego pode levar seus emails para mãos erradas.

E agora, que poderá nos defender? A criptografia!

Acho que o assunto vai ser longo então façamos como Jack: por partes!

O que é Criptografia?
Não vou dizer aqui que a palavra criptografia vem do grego ‘kryptós’ [esconder] e “gráphein’ [escrever]. Sendo assim vc terá que deduzir sozinho que seria algo como ‘esconder a escrita’.
A idéia de criptografar ou esconder as mensagens só faz sentido se alguém puder lê-las depois. Mas não qualquer alguém e sim O alguém a quem as mensagens sejam dirigidas, mantendo assim sua confiabilidade e integridade.

Tipos de Criptografia
A criptografia computacional utiliza o conceito de chaves criptográficas para embaralhar/desembaralhar as mensagens.
As chaves são um conjunto de bits baseados em um determinado algoritmo capaz de embaralhar [codificar] e desembaralhar [decodificar] as informações. Assim, apenas o receptor que possuir a chave correta poderá decifrar a mensagem enviada.
O uso de chaves possibilita ao emissor a utilização de um mesmo algoritmo para destinatários diferentes, sem que estes sejam capazes de decifrar as mensagens enviadas aos outros.

Próximo post:
Chaves simétricas e assimétricas
Padrão de criptografia PGP

Abraços =)


Dicas de Segurança para seu Computador - Parte 1

Segurança de dados tem se tornado um assunto comum em rodas de conversas, mesmo até por pessoas que não trabalham no setor de informática. Sempre tem aquelas pessoas que acham que tem mais conhecimentos do que outros e começam a palpitar sobre questões de segunrança, claro que algumas vezes acertam. Diz que nenhuma vez alguém ja tentou te esclarecer como fraudes de bancos acontecem?

A intenção em fazer esse post e outros, é primeiramente esclarecer o funcionamento do computador e de seus softwares básicos, como, sistema operacional, antivírus, antispam e outros, pois não adinata chegar aqui e encher o blog com posts que só expõem termos técnicos que para o usuário final não será muito útil. O importante é conhecer as ferramentas básicas e ao longo do tempo e da seqüência de posts iremos aprofundar melhor nas questões sobre segunrança.

Nesse primeiro post selecionei um vídeo criado pelo CGI.br(Comitê Gestor da Internet no Brasil) que explica de forma clara e intuitiva sobre a história da grande rede e sua utilização, benefícios e malefícios.



 
Design by Scooby Doo jogos