quarta-feira, 29 de abril de 2015

Roteador IP - Introdução

Um roteador é um aparelho de redes de computadores que trabalha a nível 3 da camada OSI/ISO (Rede), utilizando o protocolo IP (explicado aqui), é por isso que o roteador é capaz de conectar máquinas de redes distintas, essa função faz do roteador o aparelho que torna a internet possível de existir.

A maioria dos roteadores são domésticos e possuem apenas duas portas de roteador, e estão embutidos em um aparelho híbrido, hoje em dia esse aparelho híbrido é um modem+roteador+switch+AP Wifi. Em um aparelho híbrido moderno doméstico uma das portas é ligada a um switch (clique aqui pra entender esse termo), logo esta porta representa a rede interna do local, a outra porta é conectada ao modem interno do aparelho como a função do modem é se conectar a internet, que é a rede externa, essa outra porta representa a internet.

Veja uma foto de um aparelho desses com as partes supracitadas destacadas:




segunda-feira, 27 de abril de 2015

O que é um computador (Software)

Um programa de computador é toda e qualquer sequência programável de ações (daí o nome programa) que o computador vai fazer, por isso robôs são computadores, eles fazem o que lhes foi designado fazer.
O que seria um programa na vida real e natural?
Poderia ser na sequência:
1-    Sair de casa
2-  Pegar o ônibus
3- Se encontrar com a namorada no shopping
4- Tomar sorvete juntos
5- Cinema
6- Casa
Reparou que envolve toda uma sequência de eventos? No computador, acontece a mesma coisa, eis uma situação em que vários programas entram em ação, um após o outro:
(1) Busca pelo Sistema Operacional (no caso, Windows) efetuado pelo software da BIOS na placa mãe:
1-  Um programa instalado na placa mãe do computador segue um algoritmo, para que ele procure por um Sistema Operacional em uma ordem definida, através de um método definido e repetitivo.
2- O Windows é encontrado e o software da placa mãe passa o controle do processador para o Windows.
 (2) Windows se preparando para uso:
1- O Windows inicia procedimentos diversos (o que o define como um programa) pra permitir que o usuário possa utilizar o computador de forma cômoda e com acesso a todos os recursos (rede, teclado, mouse).
2- Término da inicialização do Windows.

domingo, 26 de abril de 2015

Linguagem C - Matriz unidimensional - Exemplo 1

O objetivo desse programa em C é preencher uma matriz unidimensional inteira (int) qualquer e imprimir seus números distintos na tela (ou seja, sem repeti-los).
Nível de dificuldade: 3 (difícil)
O código (verde) está explicado com comentários (em azul), pronto para ser copiado e colado no seu ambiente de edição favorito:
#include <stdio.h>

int main( void)
{
    int i; int j;
    int iguais; /* para contar quantos numeros do numerosjalidos [] sao iguais a detemrinado numero em determinada posicao do                     vetornumeros[]*/
    int posicaonumerosjalidos=0; /* inteiro auxiliar que guarda a posicao no vetor do numerosjalidos[] */
    int vetornumeros[9];   /* o vetor com todos os números */
    int numerosjalidos[9]; /* o vetor que vai ter todos os numeros do vetornumeros[] e na mesma ordem,
so que sem repetir nenhum numero*/

            /* Esse programa tem como funcao receber numeros de um vetor de numeros e imprimir a tela esses numeros sem repeti-los e na ordem em que entraram no vetor */

    printf ("declare agora os numeros do vetor de numeros: \n");

    for (i=0;i<=9;i++)
        {
            printf ("\nEntre com o valor do numero na posicao %d no vetor de numeros: ",i);
            scanf ("%d", &vetornumeros[i]);
        }

     

    numerosjalidos[0]=vetornumeros[0];


    for (i=0;i<=9;i++)
        {
            iguais=0;
            for (j=0;j<=posicaonumerosjalidos;j++) /* hora de fazer a varredura (loop ou laco de repeticao) */
            {
                if  (vetornumeros[i]==numerosjalidos[j])
                {
                    
                    iguais++;
                }
              
            }
            if (iguais == 0 )
            {

                numerosjalidos[posicaonumerosjalidos +1] = vetornumeros[i];

                posicaonumerosjalidos++;
             
            }
               
        }
    for (i=0;i<=posicaonumerosjalidos;i++)
        {
            printf ("\n Numero posicao %d eh: %d",i,numerosjalidos[i]);

        }
    printf ("\n\n Seu programa terminou! \n",i,numerosjalidos[i]);
    system ("pause");

}


quarta-feira, 22 de abril de 2015

O que é um computador (hardware)

O que é um computador? A resposta para essa pergunta parece ser difícil até mesmo para a maioria dos usuários com mais de 5 anos de experiência utilizando esse aparato, muitos diriam que computador é aquele negócio onde a gente digita texto no Word, ou prepara apresentações de PowerPoint.

O computador é apenas uma máquina de calcular que recebe dados sobre os cálculos a serem realizados, os realiza, e toma decisões que realizarão funções, como ligar ou desligar algo, fazer aparecer algo na tela, transmitir algo pela internet, e muito mais.

Seu celular, seu PC de mesa, seu notebook, os caixas 24 horas e até mesmo seu forno microondas são computadores.

O que é hardware? Nada mais é do que as peças utilizadas pelo computador para fazer a lógica computacional em forma de algoritmos (software) funcionar.
A ilustração animada abaixo mostra a arquitetura básica de um computador funcionando, abaixo dela está uma imagem com as descrições desses componentes básicos (enfatizando o hardware).





     1-   Placa mãe: Responsável por permitir que os componentes do computador listados abaixo se comuniquem

     2- CPU: (unidade central de processamento, ou simplesmente processador): Processa dados realizando cálculos demandados pelos programas do sistema e toma decisões após os cálculos, ou seja ele é instruído pelos programas e faz o sistema funcionar, por isso é a unidade central de processamento, ele está no centro, o sistema gira em torno dele.
Exemplo de atuação da CPU: Processar um email que você acaba de receber e enviá-lo para a tela.

Dispositivos de entrada e saída principais:

3 - Memória temporária: Usada como uma fonte rápida de dados para serem utilizados por outros dispositivos, se os dados são acessados mais rapidamente, por exemplo, o processador irá realizar os cálculos sobre estes dados mais rapidamente, a memória mais utilizada para essa tarefa é de longe a memória RAM.
Exemplo de atuação da RAM: guardar planilhas de Excel nela para os cálculos do gráfico ficarem mais rápidos.
Suas principais características são:
- Muito rápida
- Capacidade muito pequena de armazenamento
- Perde todos os dados quando o computador é desligado

4 -  Dispositivos de armazenamento em massa principais: São memórias também pois guardam dados, costumam ser bem mais capazes de armazenar dados do que a memória temporária, ela tem o objetivo de guardar seus dados sem que eles dependam do sistema ligado para ter sua integridade garantida (por isso que a gente usa o termo “salvar”) é onde fica salvo seu sistema operacional (Windows, Android, Linux, iOS, etc), seus programas, suas fotos, documentos, etc... (Por isso ele tem uma grande capacidade) Principais características:
- Lento.
- Grande capacidade de armazenamento.
- Não depende do computador ligado para manter os dados gravados nele.

     5-  Dispositivos de entrada: Utilizados para enviar dados remotamente para o computador, normalmente para controlar a máquina, pode ser o touch-screen, touch-pad, mouse, teclado, webcam, etc...

     6- Dispositivos de saída: O contrário dos dispositivos de entrada, eles recebem dados do computador e normalmente são controlados por ele, são adaptadores de vídeo (recebem dados gráficos do computador e enviam para a tela), adaptadores de áudio (recebem dados de áudio do computador e enviam o sinal de som para o aparelho de som ou fone de ouvido), ou qualquer outro dispositivo controlado remotamente pelo computador.

      7 - Dispositivos de entrada e saída externos: São externos porque não são dispositivos principais do sistema, o sistema não depende deles para funcionar. Eles recebem e enviam dados para o computador, podem ser uma multifuncional, ou alguns dispositivos de armazenamento em massa externos como pendrives, cartões de memória flash,  HDs externos, etc...


A explicação do porque alguns dispositivos são mais lentos e possuem menos espaço para armazenamento que outros é simples, qualquer benefício, também no mundo da informática, custa dinheiro, uma memória ram (temporária) de 8GB custa o mesmo que um HD (armazenamento em massa) de 500GB, ela é muito inferior na capacidade porém é várias vezes mais veloz.

sábado, 18 de abril de 2015

Protocolo IP (internet protocol) (IPv4)

O Internet Protocol como foi dito NESSE ARTIGO, é um protocolo da camada de redes.

O protocolo de InterRedes ou Internet Protocol, como é conhecido, é um dos protocolos de redes de computadores mais baixo entre os responsáveis por permitir comunicações entre redes diferentes (daí o nome Inter Net Protocol), é análoga ao conceito de “Internacional”, não coincidentemente causou um aumento nos relacionamentos internacionais também.

O protocolo IP versão 4 (IPV4) praticamente definiu a internet em meados da década de 1990 e está muito aos poucos entrando em desuso em alguns setores de algumas corporações (o motivo você verá ao estudar o cabeçalho IP abaixo), sendo substituído pelo IPV6 gradualmente.

Cada computador dentro de uma rede possuiu uma credencial para se comunicar através desse protocolo, chamada IP, detalhes sobre o cabeçalho do protocolo, incluindo o endereço IP estão incluídos na tabela abaixo: 

Cabeçalho do IPV4
Offsets
Octeto
0
1
2
3



0
0
Version
IHL
DSCP
ECN
Total Length
4
32
Identification
Flags
Fragment Offset
8
64
Time To Live
Protocol
Header Checksum
12
96
Source IP Address
16
128
Destination IP Address
20
160
Options (if IHL > 5)

Version (Versão):

- O primeiro campo de cabeçalho do pacote IP

IHL (Internet Header Lenght/ Comprimento do cabeçalho Internet):
- Determina o tamanho do cabeçalho, valor mínimo = 5 bytes  (5*32bits), valor máximo = 15 bytes (15*32bits).

DSCP (Differentiated Services Code Point):
- Originalmente chamado de Type of Service (tipo de serviço), serve para informar os receptores do pacote sobre do que se trata a transmissão (voz, prioritário, crítico) para que servidores e roteadores tomem decisões melhores sobre o que fazer com o pacote.

Total Lenght (Tamanho Total):

- Um campo de 16 bits que define o tamanho total do pacote (ou fragmento de pacote) incluindo dados e cabeçalho, em bytes, o tamanho mínimo de um pacote seria 20 bytes (cabeçalho mais nenhum dado), o máximo seria 2 elevado à 16 bytes (64k bytes).
Identification (identificação):
- Costuma ser usado para identificar de forma única grupos de fragmentos de um datagrama IP,

Flags (bandeiras, sinalização):
- É um campo de 3 bits utilizado para identificar os controlar fragmentos, do mais significativo pro menos significativo:
-- Bit 0: Reservador (deve ser zero)
-- Bit 1: Não fragmente
-- Bit 2: Mais fragmentos

Fragment offset (posição em bits, de determinado fragmento em relação ao fragmento inicial)
- O primeiro fragmento possui zero neste campo, como o campo pussui 13 bits, permitindo que um fragmento tenha 2 elevado a 13, multiplicado por 8 bytes.

Time to Live (TTL, tempo de vida):
- Tempo de vida de um pacote, usado pra evitar que o pacote fique circulando depois de muito tempo de transmissão.

Protocol (Protocolo usado):
- Define protocolo sobre IP utilizado, normalmente o TCP ou o UDP.

Header Checksum (Somatório de bits para checagem de erro de transmissão):
- É um campo de 16 bits de complemento de 1 da soma de todas as palavras de 16 bits no cabeçalho.
 Nesse ARTIGO é explicado como é feito esse complemento de 1.

Source Address (Endereço do remetente):
- Contém o endereço IP do remetente, 32 bits.

Destination Address (Endereço do distinatário):
- Contém o endereço IP do destinatário, 32 bits.

Options:

- Não é muito utilizado.