Modelo OSI



           ( Open System Interconection )

   O modelo OSI  é um modelo conceitual que caracteriza e padroniza as funções internas de um sistema de comunicações por meio do seu particionamento em camadas (layer) abstratas. Esse modelo foi definido pela ISO (Internation Organization for Standarization).
   O modelo conceitual OSI é subdividido em 7 camadas lógicas, são elas:

1º Camada Fisíca 

   Bluetooth | DSC | ISDN | 100 base T | IEEE 802.15 | IEEE 802.16 | IEEE 802.11 | IEEE 802.13 | PDH | Sonet/SDH | USB -RS-232, etc.

2º Camada Enlace

   ATM | SDLC | HDLC | CSLIP | Frame Relay | PPP | X25 | LLC | GFP | Ethernet | Wi-fi | IEEE 8021Q, 802.11g | Token Ring | FDDI.

3º Camada Rede
     (network layer)

   IPV4 | IPV6 | ARP | ICMP | IPsec | IGMP | IPX | Apple Talk | Nat | RARP.

4º Camada de Transporte
  (transport layer)

   TCP | UDP | SCTP | DCCP | SPX | Net BEUI | RTP | RIP

5º Camada de Sessão
   (session layer)

Named Pipe | Net Bios | SAP | PPTP | RTP | Socks | SPDX | TLS | SSL

6º Camada de Apresentação
   (presentation layer)

Mime | XDR | TLS

7º Camada de Aplicação
    (aplication layer)

   NNTP | SIP | SSI | DNS | FTP | Gopher | HTTP | NFS | NTP | SMTP | SNMP | TelNet | DHCP | NetConf | SSH | IRC | Pop3 | IMAP | Bit Torrent | Ping.



O modelo ISO/OSI

   O modelo OSI define 7 camadas e cada uma é responsável por um grupo de serviços. Cada camada se comunica apenas com a próxima camada inferior e superior de forma padronizada, possibilitando a implementação independente dos serviços em cada camada. As camadas agem como se estivessem comunicando-se com sua camada associada no outro computador. Um fornecedor pode se especializar em um serviço de uma camada e facilmente integrar com os serviços das outras camadas formando a solução necessária.

A Camada 1 - Física
   É a camada de mais baixo nível. Define as especificações elétricas mecânicas E-mails funcionais para ativar, manter e desativar a ligação física entre dois computadores em rede. Especifica as características físicas como o tipo de cabo, a codificação dos sinais, conectores e limitações de distância e velocidade. É responsável pela transmissão de bits de um computador para outro através de um meio físico transformando os bits em impulso elétricos ou ópticos para que possam trafegar no cabo de rede. exemplos: Wi-Fi, DSL e Ethernet.

A camada 2 - Enlace
   É a interface entre a camada física e a camada de rede. Transforma os pacotes em frames e coloca o Header de Enlace ou vice versa. O Header de Enlace contem informações para que o pacote chegue ao destino e seja restaurado os pacotes originais. Define as características da rede e do protocolo.

   O endereço físico é como os equipamentos são endereçados ao nível de camada 2 - enlace

   A topologia da rede é como os equipamentos são fisicamente conectados em forma de um barramento, anel ou estrela.

   A notificação de erro alerta as camadas superiores a ocorrência de um erro de transmissão.

   O sequenciamento de frames reordena os frames transmitidos fora da sequência.

   O controle de fluxo mantém a transmissão em um nível de tráfego que o receptor consegue manipular.

   O Enlace fornece a comunicação para o TCP e para o UDP, o método inclue o estabelecimento manutenção e liberação da comunicação. Ele também é responsável por detectar erros na camada física, exemplos: Ethernet (Lan), PPP(Man), HDLC(Wan). O IEEE divide o enlace em dois sub-Layers: o Logical Link Control(LLC) e o Medium Acess Control(Mac).

A camada 3 - Rede
     Ela fornece os meios funcionais processuais para o modo sem conexão(UDP) ou modo conectado(TCP) fornece também entidades de transporte independentes de roteamento ou considerações de Relay. Por exemplo, um roteador IP não se incomoda de rotear uma mensagem de E-mail ou conversação por voz. Exemplos: IP. ICMP E IPsec.
   Endereça mensagens e traduz endereços lógicos e nomes em endereços físiscos. Executa o roteamento. Determinando qual o melhor percurso do computador de origem ao computador de destino, baseado nas condições de rede prioridade do serviço e outros fatores.
   Gerencia o tráfego da rede controlando os congestionamentos de dados, transferência de pacotes e problema de roteamento. Quando necessário quebra os segmentos de dados em pacotes menores para transmiti-los pela rede e reagrupar os pacotes ao chegar no destino.

A camada 4 - Transporte
    Assegura que os dados são entregues livres de erros, em sequencia e sem perdas ou duplicações. Recoloca as mensagens em segmentos dividindo mensagens longas em vários segmentos menores ou agrupando mensagens pequenas em um segmento, para que sejam eficientemente transmitidos na rede.
   Seu objetivo é fornecer uma transferência de dados transparente entre as entidades da sessão, liberando as de detalhes desnecessários. Essa camada garante a conformidade com o QOS(Qualit Of Service). Exemplos TCP ou UDP, geralmente é usado quando a velocidade da comunicação é mais importante que a  confiabilidade, ela é frequentemente usado para transferência de voz e dados de videos.

A camada 5 - Sessão
   Ela fornece os meios necessários para cooperação das entidades da camada de apresentação para organizar e sincronizar seu dialogo e gerenciar a troca de dados. A sessão inclui o(de acordo) para comunicação entre as entidades e define as regras nas quais a comunicação ocorre ou seja. As sessões são criadas, a comunicação acontece, e as sessões são destruídas ou finalizadas. exemplos ISCSI, RPC, NFS.

   Estabelece, gerencia e encerra sessões de comunicação que consiste de requisições e respostas do serviço entre duas aplicações localizadas em dois computadores em rede. No diálogo para estabelecer a sessão é acordado as características da comunicação como: qual lado transmite, quando, durante quanto tempo e assim por diante.
   Fornece a sincronização das tarefas dos usuários, colocando pontos de controle de fluxo de dados para que em caso de falhas de comunicação na rede somente os dados posteriores ao último ponto de controle terão que ser retransmitidos.
   
A camada 6 - Apresentação
   A camada de apresentação fornece uma representação de informação comunicada ou referenciada pelas entidades da camada de aplicação. A camada de apresentação também oferece  a gestão da sintaxe e conversação para serviços de encriptação. Gerenciamento de sintaxe refere-se ao processo de garantia de que o remetente e o destinatário irão se comunicar em uma sintaxe compartilhada. exemplo de protocolo: SSL(Securit Sockets Layer), modelo de encriptação utilizado pelo HTTPs.

   Fornece as funções de formato dos dados como o tipo de codificação e conversação de dados, incluindo compressão/descompressão e criptografia/descriptografia.
   Os dados são representados por formatos adequados para cada tipo de dados ou aplicação. Por isso temos vários formatos utilizados para texto, imagem, sons e vídeo que podem ser convertidos conforme são transmitidos de um computador para outro dentro da rede.
Exemplo: temos computadores que trabalham com o sistema de representação de texto denominado de EBCDIC e outros que trabalham com ASCII, esta camada faz a conversão de EBCDIC para ASCII vice-versa, conforme necessário. O mesmo acontece com os padrões d imagem gráfica como o GIF(Graphics Interchange Format) JPEG(Joint Photographic Expert Group) e TIFF(Tagget Image File Format).

A camada 7 - Aplicação
    Em primeiro lugar não podemos confundir a camada de aplicação com os aplicativos comumente(ex, Excel, Word etc). Você pode dizer que a camada de aplicação contem protocolos de auto nivel com os quais os aplicativos conversam. Exemplo, o microsoft outlook precisa conversar com o SMTP(Simple Mail Transfer Protocol) para conseguir transferir as mensagens. Outro exemplo de protocolo são: HTTP e o FTP.

   É a camada mais alta e atua como uma janela para o processo do aplicativo que acessam os serviços da rede. Representa os serviços de suporte direto ao aplicativo do usuário. Como os serviços de transferência de arquivo FTP(File Transfer Protocol), FTAM(File Transfer Access and Management), acesso ao correio eletrônico SMTP(Simple Mail Transfer Protocol), e demais serviços de rede.
   Esta camada oferece á aplicação, o acesso geral aos serviços de rede permitindo o acesso ás funções de comunicação de controle do fluxo e de recuperação de erros ao nivel do aplicativo.

Resumo
  A rede é a ligação de computadores para compartilhar recursos e interligar os usuários
  O modelo ISO/OSI é um modelo de referência para a interoperabilidade de sistemas. Define sete camadas independentes, cada camada comunica-se somente com as camadas inferior e superior e age como se estivesse comunicando com a camada equivalente no outro sistema.



  Modelo TCP/IP


   


   O modelo OSI tem 7 camadas, o modelo TCP/IP tem 4 camadas essas camadas são: camada de aplicação, camada de transporte, camada de internet e camada de rede/link
   A camada de aplicação compreende as camadas de aplicação e apresentação do modelo OSI. Em outras palavras a camada 4 do modelo TCP/IP desempenha os serviços requeridos nas camadas 6 e 7 do modelo OSI.
   a RFCII22 especifica 2 categorias de protocolos na camada de aplicação: protocolo de usuário e protocolo de suporte. Protocolo de usuário incluem  os protocolos bem conhecidos, como por exemplo: FTP, SMTP e HTTP. Esses protocolos são usados para fornecer um serviço direto de acesso ao usuário.  O FTP permite a transferência de arquivos entre 2 máquinas. O SMTP permite o usuário enviar uma mensagem de E-mail. O HTTP permite o usuário visualizar as páginas de 21 site.
   Já os protocolos de suporte incluem protocolos comum como por exemplo: o DNS, DHCP e o protocolo Boot Strep(Boot P). O DNS fornece a resolução de nomes contidos nas requisições. O DHCP e o Boot P são usados para configurar o protocolo IP.
   A camada de transporte do modelo TCP/IP fornecem Host-to, Host to-host e end-tu-end.
   Os protocolos de transporte podem entregar os dados de forma confiável ou de forma não garantida.
   A próxima camada é a camada de internet, que é usada para rotear os seguimentos TCP e Datagramas UDP para o dispositivo apropriado. O protocolo que todos os protocolos das camadas de aplicação e transporte é o internet protocol(IP).
   O IP fornece uma funcionaidade de roteamento que permite a implantação de Lan's muito grandes e comunicação atravéz da internet. Em conjunto com o IP o ICMP(Internet Control Message Protocol) (o famoso Ping.) é considerado uma parte do IP.
   A ultima camada do modelo TCP/IP é chamada link/rede.Esta camada faz interface com a parte física da sua conexão. Lembrando-se que geralmente o TCP/IP executa sobre Ethernet, não existe realmente esta camada. Ao invés desse os protocolos Mac e PHY do IEEE802-3 fornecem a funcionalidade da camada de link TCP.


Formato da Informação
   Os dados que trafegam pela rede tem uma variedade de formatos e são denominados por vários termos que embora não sejam sinônimos, são utilizados de forma não padronizadas na literatura sobre o assunto.
   De uma forma geral são utilizados os seguintes termos:

Mensagem: é uma unidade de informação que contém as entidades de origem ede destino acima da camada 3 - Rede, frequentemente na camada 7 - Aplicação.

Segmento: é uma unidade de informação que contém as entidades de origem e de destino camada 4 - transporte.

Pacote: é uma unidade de informação que contém as entidades de origem e destino da camada 3 - Rede.

Datagrama: é uma unidade de informação que contém as entidades de origem e de destino da camada 3 - Rede, e utiliza o seviço de rede sem conexão.

Célula: é a unidade de informação que contém as entidades de origem e de destino da camada 2 - Enlace, e possui tamanho fixo sendo utilizados em ambientes comutados.

Topologias
   É a forma como so computadores são ligados na rede.
   Conforme os computadores são ligados através de um meio físico, normalmente cabos, define-se características básicas de como os sinais devem ser transportados ecomo este fluxo deveser controlado.
   Temos 3 topologias básicas:

   Barramento (Bus)
   Anel (Ring)
   Estrela (Star)

Barramento
   Os computadores são ligados [a rede ao longo de um cabo formando um barramento. O computador transmite os sinais para o cabo e estes são propagados da conexão no computador para as extremidades do cabo que devem possuir um terminador. Se houver algum problema no cabo, a rede toda ficara fora de operação.

Anel
   Os computadores são ligados [a rede ao longo de um cabo formando um anel, portanto as extremidades do cabo devem estar conectadas. O computador transmite os sinais para o cabo que deve ser propagado apenas em um sentido passando sequencialmente de computador para computador até o computador de origem que deve encerrar a propagação dos sinais.
   Se o cabo for rompido em apenas um ponto pode-se mudar o sentido de propagação para continuar operacional.

Estrela
  Os computadores são ligados á rede através de vários cabos saindo de um equipamento central. Há um cabo para cada computador. O computador transmite os sinais para o cabo que se propaga até o equipamento central que o propaga pelo cabo do computador de destino. Se um cabo for rompido, apenas o computador a ele conectado ficará fora da rede.

Funções do computador
   Os computadores na rede podem ter a função de cliente ou de servidor.
   O computador é cliente quando utiliza algum recurso disponível na rede.
   O computador é servidor quando disponibiliza recursos na rede.
Podemos classificar as rede em:
   Ponto a Ponto
   Baseado em Servidor

Pontoa Ponto
   Vem do termo em inglês peer to peer e é utilizado para denominar uma rede em que todos os computadores podem ter a função de cliente ou de servidor.
   Cada computador na rede tem a sua autonomia, podendo compartilhar os recursos que possui e nesse caso atua como um servidor. Pode também acessar os recursos de outros computadores na rede, atuando como cliente.

Baseado em Servidor
   E utilizado para denominar uma rede que possui computadores dedicados á tarefas especificas.
   Inicialmente os servidores de rede executavam apenas tarefas de compartilhamento de dados e impressora, permitindo que seus clientes utilizassem esses recursos. Mas, foram surgindo novas tarefas como fax, comunicação, e banco de dados, de forma que apenas um computador não conseguia executar todas as tarefas.
   Com esta evolução foi necessário dividir as tarefas em vários computadores, surgindo os servidores de arquivo, impressão, comunicação e banco de dados.

Protocolos
   Quando queremos falar com uma pessoa através do telefone, seguimos uma série de procedimentos e normas. Tiramos o fone do gancho, aguardamos o sinal de linha, discamos o número do telefone da pessoa e aguardamos o atendimento. A pessoa retira o fone do gancho e inicia a comunicação, cada um falando e ouvindo no seu devido tempo.
   Protocolo é a definição desses procedimentos e normas para a comunicação entre dois computadores.
   Quando uma camada OSI em um computador quer enviar dados para sua camada adjacente em outro computador, é preciso que o dado seja preparado e enviado segundo regras que os dois computadores possam entender.
   Portanto, a condição básica é que os dois computadores utilizem o mesmo protocolo. Existem muitos protocolos. Cada protocolo tem suas vantagens e restrições e são apropriadas para uma determinada função ou situação.
   A camada na qual um protocolo trabalha descreve as suas funções. Mas para cada camada existem vários protocolos porque são apropriadas para diferentes requisitos e condições. Por exemplo se o requisito é a garantia de entrega na sequencia dos pacotes, devemos usar somente os protocolos que implementam essa garantia.
   Vários protocolos podem trabalhar juntos sendo chamados de pilha de protocolos. Os níveis na pilha de protocolos se correspondem ás camadas do modelo OSI. Considerados como um todo, os protocolos descrevem todas as funções da pilha. As principais pilhas são: IBM, SNA, Digital Decnet, TCP/IP, AppleTalk etc.

Como Funciona os Protocolos
   Quando um computador vai enviar dados, eles são passados para o protocolo ou pilha de protocolos que o converterá no formato mais adequado para a transmissão dependendo das características da rede.
   Será incluído informações adicionais denominadas Header, como o endereço, prioridade, tipo, e demais informações que sejam necessários para que os dados sigam o caminho até o computador de destino.
   O computador de destino deve possuir o mesmo protocolo ou pilha de protocolos para que interprete as informações  adicionais para restaurar os dados originais. Todas as operações que foram realizadas pelo computador que está emitindo o dado, serão realizados pelo que recebe os dados, mas agora na forma inversa.
   Para que a transmissão de dados tenhas sucesso na rede, será necessário que o computador que envia e o computador que recebe os dados cumpram sistematicamente as mesmas etaps, para tanto, devem possuir as mesmas camadas e os mesmos protocolos.

Classificação dos Protocolos
   Existem protocolos em cada camada do modelo OSI realizando as funções de comunicação de rede. São classificadas em três níveis: Aplicativo, Transporte e Rede.

Aplicativo

   Camadas 7 - Aplicação, 6 - Apresentação, 5 - Sessão

Transporte

   Camada 4 - Transporte

Rede

   Camadas 3 - Rede, 2 - Enlace

Protocolos de Aplicativo
   Os protocolos de aplicativo são os que trabalham nas 3 camadas mais altas do modelo OSI (Aplicação, Apresentação e Sessão). Eles proporcionam interação de aplicativo para aplicativo e a troca de dados. Os protocolos mais populares são:

APPC - Advanced Program to Progam Communication: para a comunicação par a par no IBM AS/400.

FTP - File Transfer Protocol: para a transferência de arquivos, muito utilizado na internet eu Unix.

SNMP - Simple Network Management Protocol: para a monitoração e gerenciamento de redes.

Telnet: para conectar um computador remoto a outro sendo que o remoto pode executar os mesmo serviços que o local.

SMTP - Simple Mail Transfer Protocol: para a transferência de correio eletrônico noUnix.

X.400: protocolo padrão OSI de transmissão de correio eletrônico.

x.500: protocolo padrão OSI de serviços de diretório global

AppleShare: para compartilhamento de arquivo nas redes Macintosh.

Protocolos de Transporte
   Os protocolos de transporte asseguram o empacotamento e a entrega segura dos dados. Os protocolos mais populares são:

SPX -Sequential Packet eXchange: Constitui uma parte do grupo de protocolos para dados sequências IPX/SPX desenvolvido pela Novell para o seu sistema operacional Netware.

TCP - Transmition Control Protocol: da pilha TCP/IP que realiza a entrega garantida de dados.

UDP - User Datagram Protocol: da pilha TCP/IP que realiza a entrega de dados, mas sem a garantia de entrega dos dados por não executar a correção de erros e controle de fluxo.

Nwlink: para a comunicação de dados entre os ambientes Windows e o Netware.

NetBEUI NetBIOS - NET-Network Basic/EUI-Extended User Interface/IOS-Input/Output System: para proporcionar serviço de transporte de dados em computadores utilizando a interface NetBIOS. É uma interface para estabelecer nomes lógicos na rede, estabelecer sessões entre dois nomes lógicos, entre dois computadores na rede e suporta a transferência de dados entre os computadores.

Protocolos de Rede
  Os protocolos de rede controlam as informações de endereçamento e roteamento, estabelecem regras de comunicação e realizam testes de erros e pedidos de retransmissão. Os protocolos mais populares são:

IPX - Intenetwork Packet eXchange: realiza o encaminhamento de roteamento do pacote padrão IPX/SPX, desenvolvido pela Novell para seu sistema operacional Netware.

IP - Internet Protocol: da pilha TCP/IP para encaminhamento e roteamento do pacote, realiza o roteamento das informações de um computador para outro.

Resumo
   A comunicação tem 3 tipos distintos: modo, operação e técnica.
   Quanto ao modo pode ser assíncrona e síncrona.
   Quanto á operação pode ser half duplex e full duplex.
   Quanto á tecnica pode ser baseband e broadband.
   Os dados que trafegam podem ser mensagem, segmento, pacote, datagrama, frame ou célula.
   As principais topologias são barramento,anel e estrela
   As redes podem ser baseadas em servidor ou par a par.
   Os protocolos são procedimentos e normas que regem a comunicação e devem ser iguais nos dois computadores que estão se comunicando. Temos vários protocolos e de acordo com a camada de atuação temos protocolos de aplicativo, transporte ou rede.

TCP/IP Transmission Control Protocolo / Internet Protocol

   O TCP/IP é uma pilha de protocolos que se tornou de fato para a comunicação de computadores diferentes com sistemas Unix, Windows e até mainframes.
   A padronização do TCP/IP é publicada numa série de documentos chamados de RFC (Request For Comments). Os RFCs descrevem os trabalhos realizados para a padronização da internet, alguns RFCs descrevem os serviços de redes ou os protocolos e suas implementações, outros resumem as politicas de ordem prática de sua utilização no  mundo internet.
   Os padrões TCP/IP não são desenvolvidos por um comitê e sim por consenso. Qualquer pessoa pode submeter um documento para publicação como um RFC.
   Os documentos submetidos são revisados por um técnico expert, uma força tarefa ou um editor RFC, através do IAB(Internet Activities Board) que é o comitê responsável para aprovar os padrões e gerenciar o processo de publicação.
   Possui dois grupos: O IRTF(Internet Research Task Force) responsável por coordenar todos os projetos de pesquisa relacionados como o TCP/IP e o IETF(Internet Engineering Task Force) que se preocupa com  a resolução de problemas ocorridos na internet.

  





 O TCP/ e o Modelo OSI


TCP x OSI - A imagem está dividida em duas colunas separadas. Na coluna da esquerda, está representado o modelo de camadas OSI, sendo que de baixo para cima temos as camadas: Física, Enlace, Rede, Transporte, Sessão, Apresentação e Aplicação. Na coluna da direita, está representado o modelo de camadas TCP/IP, que é baseado no modelo OSI. O modelo de camadas TCP/IP contém 4 camadas: Aplicação, Transporte, Internet e Interface de Rede. Nesse modelo, a camada de Interface de Rede correlaciona-se com as camadas Física e Enlace, do modelo OSI. Assim como, a camada Internet correlaciona-se com a camada Rede, a camada de Transporte com a camada de Transporte e, por fim, a camada Aplicação correlaciona-se com as camadas Sessão, Apresentação e de Aplicação.

   O TCP/IP é organizado em 4 camadas: camada de Interface de Rede, Internet, Transporte e Aplicação.

   A camada de interface de rede é a camada mais baixa, equivalente ás camadas físicas e enlace do modelo OSI, Sendo responsável por colocar e retirar os dados no meio físico.
   A camada Internet é a camada equivalente á camada Rede do modelo OSI. Sendo responsável pelo endereçamento, empacotamento e roteamento dos dados. São definidos 3 protocolos:

IP - Internet Protocol: executa o endereçamento e roteamento de pacotes entre hosts e redes.

ARP - Adress Resolution Protocol: executa a resolução de endereço de harware de host localizados na mesma rede física para obter o endereço do host de destino.

ICMP - Internet Control Message Protocol: envia mensagens e relata os erros relacionados a entrega de pacotes.

   A camada de transporte é a camada equivalente á camada transporte do modelo OSI. Sendo responsável pela comunicação entre dois hosts. São definidos 2 protocolos.

TCP - Transmission Control Protocol: executa a comunicação segura e confiável. É indicado para aplicativos que transmitem grandes quantidades de dados de uma só vez ou que exigem confirmação para os dados recebidos. Fornece o serviço de liberação de pacotes orientado á conexão ou seja estabelece a conexão antes de transmitir.

UDP - User Datagram Protocol: executa uma comunicação sem conexão e não garante a entrega do pacote. É indicado para aplicativos que transmitem pequenas quantidades de dados de uma só vez. O aplicativo deve ter rotinas de confirmação de recebimento dos dados.

   A camada de Aplicativo é a camada equivalente ás camadas Sessão, Apresentação e Aplicação do modelo OSI. Responsável pelo acesso do aplicativo á rede. Possui dois tipos de interfaces:

Sockets: oferece uma interface da programação de aplicativos que é padronizada para os diversos sistemas operacionais.

NetBIOS: proporciona uma interface de programação para os protocolos que suportam a convenção de nomes NetBIOS para endereçamento.

Endereço IP
   O endereçamento IP é um esquema para identificar um hostTCP/IP, o termo host refere-se a qualquer parte de hardware que pode ser endereçada (Ex: servidor; roteador). Um host TCP/IP dentro de uma LAN é identificado por um endereço que deve ser único dentro de um formato padrão.
   Um endereço IP possui 32 bits, composto de 4 campos de 8 bits. Cada campo é separado por ponto e pode representar um número decimal de 0 a 255. Ex: 125.32.17.7 é um endereço IP.

Endereço IP


   Um endereço IP é constituído de duas partes:

. O endereço da rede chamado de Net Id
   O Net Id identifica uma determinada rede ou sub-rede e todos os computadores desta rede deverão ter o mesmo Net Id.

. O endereço do host chamado Host Id
  O  Host Id identifica uma estação servidor ou roteador dentro de uma rede, o endereço para host deve ser único dentro da rede.


Endereço IP - NetID - HostID


Endereço IP
   A comunidade de internet definiu 5 classes de endereço IP para acomodar redes de diferentes tamanhos.
   As classes de endereço definem os campos utilizados para Net Id e Host Id e são classificadas em A, B, C, D  e E. Apenas as três primeiras classes estão disponíveis para uso comercial.

Classe
Bits
Esq
.
Formato
Tamanho
Organização
Menor
Endereço
Maior
Endereço
A
0
R.H.H.H
Grande
1.0.0.0
126.0.0.0
B
10
R.R.H.H
Média
128.1.0.0
191.254.0.0
C
100
R.R.R.H
Pequena
192.0.1.0
223.255.254.0

R = Rede
H = Host

Exemplo:

Endereço 1.128.255.7
00000001.10000000.11111111.00000111 em binário
bit esquerda = 0
Classe A 
NetdId = 1
HostId = 128.255.7
Endereço 190.250.7.127
10111110.111111010.00000111.01111111 em binário
bits esquerda = 10
Classe B
NetId = 190.250
HostId = 7.127
Endereço 200.150.255.100
11001000.10010110.11111111.01100100 em binário
bits esquerda = 11
Classe C
NetId = 200.150.255
HostId = 100 


Endereço de Sub-Redes

   Uma rede IP pode ser dividida em sub-redes para aumentar a flexibilidade, melhor uso de endereços de rede e capacitar o controle do tráfego de Broadcast (que não cruza um roteador).
   Uma sub-rede está sob a administração local e é vista pelo mundo externo á organização apenas como uma única rede e sem os detalhes da estrutura interna da organização.
   Um endereço de rede pode ser quebrado em muitas redes. Por exemplo: 132.7.32.0,   132.7.64.0,   132.7.96.0   132.7.128.0   132.7.160.0,   132.7.192 e 132.7.224.0. São todos sub-redes dentro da rede 130.5.0.0 ( se o endereço tiver o Host ID preenchido por zeros. especifica a rede inteira)
   Na figura abaixo a rede privada utiliza classe B de endereçamento e sub-redes. O roteador aceita todo o tráfego de internet endereçada para a rede 132.7.5.00 e encaminha ao tráfego para as sub-redes baseado nos três bits da esquerda do terceiro octeto(byte).

TCP - Tráfego


Resumo

   O TCP/IP é a pilha de protocolos padrão para a comunicação entre computadores inclusive na internet.
   Possui apenas 4 camadas: camada de acesso a rede, internet, transporte e aplicação.
   Define um sistema de endereçamento de 4 bytes que são divididos em endereços de rede ( Net ID)  e endereço de host ( Host ID) comercialmente temos 3 classe: 

Classe A com bit mais a esquerda igual a 0 com 7 bits p pata Net ID e 24 para Host ID.

Classe B com dois bits mais a esquerda igual a 10 com 14 bits para Net ID e 16 bita para Host ID.

Casse C com os três bits mais a esquerda igual a 110 com 21 bits para Net ID e 8 bits para Host ID.

   A sub-rede foi definida para melhorar a alocação dos endereços IP. Divide o Host ID em dois campos: Sub-rede e Host. De tal forma que uma empresa com apenas um endereço IP consegue definir várias sub-redes internas cuja estrutura não é visível fora da empresa.
   Para especificar quantos bits são utilizados para sub-rede utilizamos a máscara de sub-rede que é o endereço IP onde todos os bits de NET id e de sub-Net são 1 bits.
   Tambem podemos utilizar a notação de Extend Network Prefix Lenght, colocando o endereço IP seguido de / e o número de bits do Net ID e sub-rede.

Detalhes Técnicos dos Protocolos

   Camada de protocolos de transporte, como o Transmission Control Protocol (TCP) e User Datagram Protocol (UDP), especifica um número de porta de origem e destino em seus cabeçalhos de pacotes. Um número de porta é um número inteiro de 16 bits sem sinal, portanto, que varia de 1 a 65535 (número de porta 0 é reservado e não pode ser usado).
O processo associa sua entrada ou saída através da conexão de internet, um tipo de descritor de arquivo, com um protocolo de transporte, um número de porta e um endereço IP. Este processo é conhecido como ligação, e permite o envio e recebimento de dados através da rede de internet. Software do sistema operacional de rede tem a tarefa de transmitir dados de saída de todos as portas de aplicação para a rede, e lidar com o encaminhamento de pacotes de rede que chegam por um processo de correspondência o endereço IP do pacote e número de porta.
Somente um processo pode ligar-se a um endereço IP específico e combinação de porta usando o mesmo protocolo de transporte. Falhas de aplicativos comuns, conflitos de porta chamadas, às vezes, ocorrem quando vários programas tentar ligar para os mesmos números de porta no mesmo endereço IP usando o mesmo protocolo. A esse acontecimento denominamos de “congestionamento de rede”.
Aplicações e execuções de serviços comuns costumam ser especificamente reservados, números bem conhecidos de porta para receber solicitações de serviço das máquinas.
Este processo é conhecido como "listening" (escutar) e envolve a recepção de um pedido na porta conhecida e estabelecendo uma conexão cliente-servidor, usando o mesmo número de porta local;
outros clientes podem continuar a conectar-se à porta de "listening". Isso funciona porque uma conexão TCP é identificada por “the tuple” {endereço local, porta local, endereço remoto, porta remota}. As portas conhecidas são definidas por convenção, e são supervisionadas pela Internet Assigned Numbers Authority (IANA).
Os principais serviços de rede, como a World Wide Web, mais conhecida como "WWW", normalmente usam números de portas pequenas com valor menor que 1024. Em muitos sistemas operacionais medidas especiais são necessários para aplicações conectarem-se a essas portas, porque estas são muitas vezes consideradas críticas para a operações com redes de IP. Por outro lado, o cliente final de uma ligação geralmente utiliza um número de porta alto para aplicações de curta duração, assim chamado de “porta efêmera”.
Os números de porta são codificados no cabeçalho do pacote de protocolo de transporte, e pode ser prontamente interpretado, não só pelo envio e recebimento de computadores, mas também por outros componentes da infra-estrutura da rede. Em particular, o Firewall é normalmente configurado para diferenciar pacotes com base na sua origem ou destino do número de porta. Encaminhamento de porta é um exemplo de aplicação deste.
A prática de tentar conectar-se a um intervalo de portas em seqüência em um único computador é comumente conhecido como “varredura de portas”. Isso geralmente é associada com a cracking attempts(em inglês) maliciosos ou com os administradores de rede à procura de possíveis vulnerabilidades para ajudar a prevenir ataques.
Tentativas de conexão de portas são frequentemente monitoradas e registradas por computadores

   Um exemplo para a utilização de portas é o sistema de correio de Internet (e-mail). Um servidor é utilizado para enviar e receber e-mails, geralmente são necessáriose dois serviços. O primeiro serviço é utilizado para transportar o e-mail para outros servidores. Isto é realizado com o Simple Mail Transfer Protocol (SMTP). O aplicativo de serviço SMTP normalmente executa na porta TCP 25 para receber as solicitações.
O segundo serviço é normalmente o protocolo POP3 (Post Office Protocol) ou o Internet Message Acess Protocol (IMAP), que é usado por aplicativos de cliente de e-mail em computadores pessoais do utilizador para buscar mensagens de e-mail do servidor. O serviço POP executa na porta TCP número 110. Ambos os serviços podem ser executados no mesmo computador host, o número da porta distingue o serviço que foi solicitado por um computador remoto, seja computador de um usuário ou outro servidor de e-mail.
Enquanto que o número da porta de escuta de um servidor é bem conhecida (IANA), número da porta do cliente é muitas vezes escolhido a partir do intervalo dinâmico de portas.

Números de Portas Comuns

Os números de porta são divididos em três faixas: As portas bem conhecidos, os pontos registrados, e as portas dinâmicas ou privada. As portas bem conhecidas são as de 0 a 1023. Os exemplos incluem:

.20 & 21: File Transfer Protocol ( FTP)

.22: Secure Shell (SSH)

.23: Telnet Remote Login Service

.25: Simple Mail Transfer Protocol (SMTP)

.53: Domain Name System (DNS)  service

.80: Hypertext Transfer Protocol(HTTP) used in the world wide web

.110: Post Office Protocol (POP3)

.119: Network News Transfer Protocol (NNTP)

.143: Internet Message Acess Protocol(IMAP)

.161: Simple Network Management Protocol (SNMP)

.443: HTTP Secure (HTTPS)

CSS Avançado

  

Efeito cascata


   Que estilo será aplicado, quando há conflito de estilos especificados (por exemplo: uma regra de estilo determina que os parágrafos serão na cor preta e outra que serão na cor azul) para um mesmo elemento HTML?
Aqui entra o efeito cascata, que nada mais é, do que o estabelecimento de uma prioridade para aplicação da regra de estilo ao elemento.
Para determinar a prioridade são considerados diversos fatores, entre eles, o tipo de folha de estilo, o local físico da folha de estilo no seu todo, o local físico da regra de estilo na folha de estilo e a especificidade da regra de estilo.
A prioridade para o efeito cascata em ordem crescente é a seguinte:
  1. folha de estilo padrão do navegador do usuário;
  2. folha de estilo do usuário;
  3. folha de estilo do desenvolvedor;
    • estilo externo (importado ou linkado).
    • estilo incorporado (definido na seção head do documento);
    • estilo inline (dentro de um elemento HTML);
  4. declarações do desenvolvedor com !important;
  5. declarações do usuário com !important;
   Assim, uma declaração de estilo com !important definido pelo usuário prevalece sobre todas as demais, é a de mais alta prioridade. Entre as folhas de estilo definidas pelo desenvolvedor do site, os estilos inline (dentro de um elemento HTML) tem a prioridade mais elevada, isto é, prevalecerá sobre a folha de estilo definida na seção head, e, esta prevalecerá sobre uma folha de estilo externa. A prioridade mais baixa é para estilos padrão do navegador.



  Como herança e especialidade afetam as regras CSS


   Se você tem duas (ou mais) regras CSS conflitantes que se aplicam ao mesmo elemento, existem algumas regras básicas que o navegador segue para determinar qual é a mais específica e por isso a vencedora.
Isso pode não parecer importante, e na maioria dos casos você não vai encontrar conflito algum, mas à medida que seus arquivos CSS se tornam maiores e mais complexos, ou você passa a lidar com um número maior de arquivos, aumentam as chances de conflitos aparecerem.
   Se os seletores são os mesmos o último sempre tem prioridade. Por exemplo, se você tem:
p { color: red; }
p { color: blue; }
   Elementos p seriam coloridos de azul porque é a regra que vem por último.
De qualquer forma, você geralmente não vai ter seletores idênticos com declarações conflitantes (porque não faz muito sentido). Conflitos sempre aparecem, no entanto, quando você tem seletores aninhados. No exemplo seguinte:
div p { color: red; }
p { color: blue; }
   Pode parecer que um elemento p dentro de uma div vai ser colorida de azul, já que a regra de colorir elementos p de azul vem por último, mas na verdade ele vai ser colorido de vermelho devido a especificade do primeiro seletor. Basicamente, quanto mais específico for um seletor maior prioridade ele vai ter quando aparecerem estilos conflitantes.
   A especifidade real de um grupo de seletores aninhados precisa de alguns cálculos. Basicamente, você atribui a cada seletor de id (“#qualquercoisa”) um valor de 100, a cada seletor de classe (“.qualquercoisa”) um valor de 10 e a cada seletor HTML (“qualquercoisa”) um valor de 1. Aí você soma tudo e que rápido!, você tem o valor da especificidade.
  • p tem especifidade de 1 (1 seletor HTML)
  • div p tem especifidade de 2 (2 seletores HTML; 1+1)
  • .tree tem especifidade de 10 (1 seletor de classe)
  • div p.tree tem especifidade de 12 (2 seletores HTML e um seletor de classe; 1+1+10)
  • #obaoba tem especifidade de 100 (1 seletor de id)
  • body #content .alternative p tem especifidade de 112 (seletor HTML, seletor de id, seletor de classe, seletor HTML; 1+100+10+1)
   Então de todos os exemplos usados, div p.tree (com especificidade de 10) venceria div p (com especificidade de 2) e body #content .alternative p venceria de todos eles, independente da ordem.



 Diferença entre o uso de link e @import.


   Sob os conceitos das CSS, um link poderá ser estilizado de qutros maneiras distintas, correspondendo cada uma delas a um dos estados do link.


  1. Estado UP: corresponde a situação inicial do link, isto é, o aspecto do link quando a página é carregada no browser do usuário;
  2. Estado OVER: é o aspecto que o link assume quando o usuário passa o ponteiro do mouse sobre o link;
  3. Estado VISITED: é o aspecto do link depois que foi visitado pelo usuário;
  4. Estado ACTIVE: é o aspecto do link ativo, isto é, aquele que foi clicado pelo usuário.
   Os browsers são fabricados de modo a renderizar cores default para os estados UP e VISITED. Em geral, não há estilização default para os estados HOVER e ACTIVE.
E, links são sublinhados por default.
Normalmente cor azul (#0000FF) para estado UP e cor púrpura (#990099) para estado VISITED, conforme mostrado abaixo: As pseudo classes para links
Estado UP ==> link não visitado
Estado VISITED ==>link visitado


As pseudo classes para links

Cada um dos 4 estados dos links poderá ser estilizado por regras CSS aplicadas em 4 pseudo classes, conforme mostradas abaixo: As pseudo classes para links
  1. a:link estiliza o estado UP;
  2. a:visited estiliza o estado VISITED;
  3. a:hover estiliza o estado OVER;
  4. a:active estiliza o estado link ativo;                    

Retirando o sublinhado default dos links



Está é primeira pergunta de iniciantes em manipulação de links com CSS.
A propriedade CSS que retira o sublinhado dos links é text-decoration e o valor é none. Assim a declaração text-decoration: none retira o sublinhado na pseudo classe onde for aplicada.
Mas, e se eu quiser a:hover com sublinhado ?
Você terá que definir para aquele estado uma regra CSS que recoloque o sublinhado de volta! E, felizmente text-decoration admite outros valores além do none.
  • text-decoration: none ==> retira o sublinhado;
  • text-decoration: underline ==> coloca um sublinhado;
  • text-decoration: overline ==> coloca um sobrelinhado;
  • text-decoration: underline overline ==> coloca sobre e sublinhado juntos;
  • text-decoration: line-through ==> coloca uma linha em cima do texto.
Então se você fizer:
a:link {text-decoration: none;}
a:hover {text-decoration: underline;}
terá estado UP sem o sublinhado e estado OVER com o sublinhado.


O efeito cascata nas pseudo classes para links

   Importante: a sequência em que você escreve as regras CSS para as pseudo classes dos links é determinante para o perfeito funcionamento do seu projeto para links .
Você deve saber que uma das diretrizes que determinam o efeito cascata das CSS diz que regras escritas posteriormente no fluxo do documento têm precedência sobre aquelas anteriores. (mais detalhes)
Assim, se você ao escrever suas regras CSS para as pseudo classes dos links colocar a:link em último lugar, estará dando a esta pseudo classe a mais alta prioridade no efeito cascata e seua links seguirão sempre esta regra e nada do que você projetou para a:hover, a:visited e a:active vai funcionar. :-(
Agora pense no funcionamento de um link em uma página web e responda:
Qual é a sequência de escrita das regras CSS para estilizar as pseudo classes dos links ?
a:link é o estado UP inicial em consequência é a primeira regra a escrever;
a:visited não deve prevalecer sobre a:hover e nem a:active, é a segunda;
a:hover não deve prevalecer sobre a:active, é a terceira;
a:active é a última.
Esta é a sequência recomendada e adotada em projetos CSS para links.


Links com Comportamentos diferentes na mesma página

   Para obtenção de links com comportamentos diferentes em uma mesma página, você deverá criar classes. e aplicá-las aos links.
Considere que criamos uma classe chamada linque1 e veja abaixo a sintaxe para escrita da regra CSS para esta classe:
a.linque1:hover {text-decoration: underline overline;}
Esta regra coloca um sublinhado e um sobrelinhado nos links da página quando no estado OVER e que pertencem a classe linque1.


Uma página para as suas experiências e estudos

Vá para uma página web contendo vários links estilizados, para você copiar-colar o código fonte e fazer seus estudos offline, quer alterando as propriedades CSS, quer invertendo a sequência das declarações para constatar o efeito cascata em ação quer observando como foram escritas as regras CSS. E ainda constatar como funcionam as classes em links em uma mesma página.


   A regra @import adiciona outra folha de estilo. Por exemplo, se você quiser adicionar os estilos de uma outra folha de estilo para a sua existente, você pode adicionar algo como:

@import url(estilosadicionais.css);
 
Isso é muitas vezes usado no lugar do elemento link para ligar um arquivo CSS a uma página HTML, essencialmente para ter uma folha de estilo interna, algo como isso:

<style type="text/css" media="all">
  @import url(macaco.css);
</style>
 
 
   O benefício disso é o fato de que navegadores mais antigos, como o Netscape 4.x, por não terem idéia das regras @, não vão ligar a folha de estilos, o que, se você tiver uma marcação bem-estrurada, vai deixar o HTML puro funcional (embora sem estilo).




http://maujor.com/tutorial/especificidade.php

Tutorial CSS


   O CSS é usado para definir um estilo diferente para nossa página, com ele podemos adaptar melhor as nossas páginas, as midias impressas. O CSS externo é importado com a tag Link da seguinte forma:

   <link href="estilos.css" rel="stylesheet" type="text.css">

   Para gerar uma visualização mais adequada para impressão  da nossa página, não precisa mudar muito o Código HTML, você apenas insere um atributo novo na tag Link:

   <link href="estilos_impressão.css" rel="stylesheet" type="text.css" media="print">

   Apenas atribuindo o media="print" na tag link, geramos a versão de impressão da nossa página. Lembrando que  o local não muda, fica entre as tag <head> </head>

Ex:

<!DOCTYPE>
<html>
<head>
     <title>Nome da página</title>
     <link href="estilos.css" rel="stylesheet" type="text.css">
     <link href="estilos_impressão.css" rel="stylesheet" type="text.css" media="print">
</head>


         


Conceito de Design de Sites



                                                                    Contraste

   O analisador de contraste de cores é uma ferramenta para verificar se determinada combinação de cores para o fundo e para o primeiro plano, oferece boas condições de visibilidade. Ela dispõe ainda de funcionalidades que fazem simulações de determinadas condições visuais tais como a cegueira cromática.




Repetição


    Repetir certos elementos que unem as partes dispersas. Cada página no site deve parecer pertencer ao mesmo site, á mesma empresa, ao mesmo conceito. Os botões, cores, estilo, ilustração, formato, layout, tipografia, todos podem ser parte da repetição que unifica o site inteiro.



Teoria das Cores, Color, Coding


   É uma estranha combinação de letras e números, cada código HTML contém o simbolo # e 6 letras ou números. Estes números estão no sistema numérico hexadecimal. Por exemplo, "FF em hexadecimal representa o número 255 decimal.
   Os primeiros dois símbolos no código HTML representam a intensidade da cor encarnada. 00 é o mínimo e FF o mais intenso. O terceiro e o quarto representam a intensidade  de verde e o quinto e o sexto representam a intensidade de azul. Portanto, combinamos as intensidades de encarnado, verde e azul, podemos misturar qualquer cor que desejar.

Exemplo:

#FF0000 - Com esse código html dizemos ao browser para mostrar o máximo de encarnado e nenhum verde e azul. O resultado é claro a cor encarnada pura: =
#00FF00 - Este código html mostra apenas o verde e nenhum encarnado e azul: =
#0000FF - Este código html mostra apenas o azul e nenhum encarnado e verde: =
#FFFF00 - Combinação de encarnado com verdes da amarelo: =
#CCEEFF - Ponha um pouco de encarnado, um pouco mais de verde e o máximo de azul para ter a cor do céu. =





Tipografia e Estilos de Escritas




   Tipografia é a arte e processo de criação de caracteres. O termo tipo é o desenho de uma determinada família de letras como por exemplo: verdana, futura, aria, etc. O conhecimento adequado do uso da tipografia é essencial aos designers que trabalham com a diagramação, ou seja, na relação de texto e imagem.
   Na tipografia, as fontes tipográficas (ou apenas fontes) são classificadas em 4 grupos básicos: as com serifas, as sem serifas, as cursivas e as fontes dingbats.





Mapa do Site


É uma simples planta de quantas páginas e onde se localizam cada uma delas, como no exemplo:



Organização de arquivo


   Os endereços são escritos na forma de URL, que é a maneira que inventaram para se especificar o caminho até se chegar num arquivo que esteja em algum local da internet.
   O formato da URL é:

   protocolo://nome-do-computador/pasta/arquivo

   O protocolo indica como o navegador ira buscar o arquivo. Nome do computador é aquele endereço do tipo www.alguem.com.br e as pastas são os diretórios dentro desse computador onde estão os arquivos. Uma URL de um artigo do site da CMI Brasil é por exemplo, http://www.midiaindependente,org/pt/blue/2004/09/290669.html, onde http:// é o protocolo, pt, blue, 2004 e 09 são pastas,uma fica dentro da outra e 290669.html é o nome do arquivo


Links Relativos e Links Absolutos


   Link absoluto é aquele em queo endereço é escrito integralmente. Link relativo é aquele em que o endereço é escrito de forma resumida.
Por exemplo:

   <a hef="http://irineifatec.blogspot.com">Pagina Inicial</a> é absoluto
   <a hef="http://irineifatec.blogspot.com/index.html">Pagina Inicial</a> é absoluto, mas
   <a hef="/">Pagina Inicial</a> é relativo
   <a hef="index.html">Pagina Inicial</a> também é relativo

   Todos apontam para a home deste site. Observe que no relativo só apareceu o nome /index.html e no outro exemplo apenas "/" que, por convenção, significa a página inicial do site. No link relativo aparece o nome do do arquivo (no caso, index.html e "/"). 
   As vezes a grafia de um link relativo é mais complicada. Veja por exemplo:
   Os dois pontos e barra são estendidos como substitutos da página inicial, que fica na raiz do site.
  Colocando no código-fonte, conduz ao destino desejado, como se pode ver clicando no link abaixo.
 O link tem 4 elementos indispensáveis ao seu funcionamento: ancora, hipertexto de referência, texto dolinke âncora de fechamento </a>, Eles aparecem assim <a hef="http://dominio.com.br/glossario2.html#Ancora>Texto do link</a>.


Wireframe


   Wireframe é um desenho básico, como um esqueleto, que demonstra de forma direta a arquitetura de como o objeto (interface, página da Internet, modelo, etc.) final será de acordo com as especificações relatadas. 
Ele é elaborado para organizar os elementos que entrarão na composição do projeto final, no entanto, ele deve ser feito da maneira mais simples possível, mostrando apenas o essencial, como uma espécie de rascunho, sem cores ou imagens.
   O objetivo do Wireframe é auxiliar o desenvolvedor no entendimento dos requisitos que foram recolhidos junto ao cliente com relação as funções e objetos que um sistema (mas não somente relacionado a informática ou Internet, pode ser um objeto, modelo, etc.)

                       


Mockup

   É como o wireframe, é um desenho básico, como um esqueleto, que demonstra de forma direta a arquitetura de como o objeto (interface, página da Internet, modelo, etc.) final será de acordo com as especificações relatadas, porém no mockup é descrito o tipo de fontes e cores que serão usadas no seu projeto.