domingo, 21 de abril de 2013

Trabalho de pesquisa 3


Conceitos sobre ARP

ARP, acrónimo de Address Resolution Protocol, é o protocolo usado para encontrar numa LAN o endereço MAC (também conhecido por endereço físico) de um equipamento a partir do seu endereço IP.
Para que um computador comunique com outro numa LAN necessita de saber o seu endereço MAC. Para tal emite, em broadcast, um pacote ARP contendo o endereço IP do computador que deseja contactar e aguarda por uma resposta que conterá o endereço MAC necessário. De forma a acelerar o processo e a reduzir a carga na rede os equipamentos mantêm em cache os endereços ARP. A utilização dos endereços MAC e do protocolo ARP permite que os endereços IP sejam independentes do equipamento a que estão atribuídos e possam ser portados.

ARP – Endereçamento para outra LAN

Pretende-se enviar um datagrama de A para B via R, supondo que A saiba o endereço IP de B

Duas tabelas ARP no router R, uma para cada rede IP (LAN)
  • A cria datagrama IP com origem A, destino B
  • A usa ARP para obter endereço MAC de R para 111.111.111.110
  • A cria quadro da camada de enlace com endereço MAC de R como destino, quadro contém datagrama IP A-para-B
  • NIC de A envia um quadro
  • NIC de R recebe o quadro
  • R remove datagrama IP do quadro Ethernet, vê o seu destinado a B
  • R usa ARP para obter endereço MAC de B
  • R cria quadro contendo datagrama IP A-para-B e envia para B


Tabelas ARP

Os dispositivos mantêm tabelas que contêm os endereços MAC e os endereços IP de outros dispositivos ligados à mesma LAN.
  • Cada dispositivo tem a sua própria tabela ARP.
  • Tabelas ARP são armazenadas na memória RAM e são mantidas automaticamente, assim, na maior parte das vezes, o utilizador não precisa adicionar endereços manualmente.



Protocolos de routing
Todos os protocolos de routing realizam as mesmas funções básicas. Os protocolos determinam a rota preferida para cada destino e distribuem informações de routing entre os sistemas da rede, permitindo interacção entre routers. A principal diferença entre os protocolos de routing é como os protocolos realizam estas funções, em particular como decidem qual é a melhor rota.
Exemplos de protocolos de routing: RIP, OSPF, EIGRP, EGP, BGP.

Utilitários de administração de redes


Utilitários direcionados exclusivamente para a administração de redes TCP/IP, com especial atenção para a excessão do finger.
  • Ping
  • Ipconfig
  • Wntipcfg
  • ARP
  • Hostname
  • Nbtstat
  • Netstat
  • Nslookup
  • Route
  • Traceart
  • Finger


Ping
  • Estre primeiro utilitário referido permite testar a comunicação com qualquer host, dispondo deste modo, em escassos segundos a verificação do bom funcionamento dos hosts e da rede. Permite, igualmente, testar a instalação do TCP/IP no host onde é utilizado.


ipconfig
  • Fornece informação de índole genérica sobre a configuração do TCP/IP na máquina onde é executada a ação. Estas informações abrangem o endereço IP, endereço MAC, subnet mask, default gateways, etc...


wntipcfg
  • Estabelece equivalências com o ipconfig, contudo, apresenta-se em versão gráfica.


ARP
  • O protocolo ARP determina os endereços físicos das placas de rede correspondentes aos endereços IP dos hosts para os quais é imprescindível o envio dos pacotes IP.
  • O comando ARP, por seu turno, induz à possibilidade de consultar e manipular a tabela de equivalências mantida pelo computador, denominada por arp cache.
  • Proporciona-nos também o controlo da cache para cada um das placas de rede que definem existência no computador, se se tratar de um multihomed computer.


Hostname
  • Abastece-nos com o conhecimento do host name da máquina onde o comando executa a sua função.


Nbtstat
  • Acrescenta informação detalhada acerca dos nomes NetBIOS que estão envolvidos na comunicação via rede, inclusive os dos computadores remotos.
  • Pode ainda ser utilizado para a manipulação de tabela dos nomes, importada do ficheiro LMHOSTS.
 
netstat
  • Fornece estatísticas de caráter minuncioso sobre o funcionamento dos protocolos IP, TCP, UDP e ICMP, cujas são produzidas automaticamente pelo ICMP no decorrer do funcionamento da rede.
  • A título de exemplo poderemos mencionar que é possível, na posse deste comando, a verificação de quais os ports utilizados pelo sistema.


nslookup
  • Bastante requisitado por hackers no sentido da obtenção de informação indispensável para obrigar de certa forma a entrada em redes cuja segurança é quase nula, para obter informações sobre os computadores dessas redes.
  • Presenteia-nos, então, com o acesso e extração de informação sobre os computadores de uma rede, designadamente, especificação de equivalências entre endereços IP e host names, especificações de routers, servidores de correio eletronico, etc...


Route
  • Protagoniza a função de manipulação da routing table, onde o sistema se sustenta para definir os locais para onde deve direcionar pacotes IP, com o objetivo de os fazer alcançar o alvo.


Traceart
  • De extrema utilidade para a configuração e teste do routing de pacotes por meio de redes segmentadas, visto que permite aferir qual o caminho que é tomado pelos pacotes até atingirem um destino para eles já destinado.
  • Aproveita-se do protocolo ICMP.


Finger
  • Converte a extração de informação sobre um utilizador de um host particular.

Noções sobre as camadas de Sessão e Apresentação do modelo OSI


A camada de Sessão do modelo OSI.
A camada de sessão permite a diferentes dispositivos de rede o estabelecimento de sessões entre eles.

Essa sessão permite a normal transmissão de dados, tal como a camada de transporte, mas com alguns melhoramentos específicos ao objetivo da ligação usada (transferência de ficheiros remotos, ligação remota a um computador, etc).

Por isso, a camada de sessão tem de gerir o modo de comunicação usado pelos dispositivos intervenientes.

Pode permitir que o tráfego seja feito somente segundo um sentido, ou nos dois, simultânea ou alternadamente.

Nos últimos casos, o registo do dispositivo que deve transmitir é feito e controlado por mecanismos pertencentes a esta camada.

Nalguns sistemas é necessário que apenas um dispositivo possa aceder à rede de cada vez.

A camada de sessão permite-o através da transmissão de um testemunho.

Só o dispositivo que estiver de posse deste testemunho é que pode transmitir dados entre um determinado período de tempo, após o qual passa o testemunho ao próximo dispositivo.

A última função desta camada é o de proporcionar e garantir a sincronização.

Esta sincronização tem o objetivo de garantir a transferência fiável de dados entre os dispositivos, tratando a eventual recuperação no caso da existência de erros durante a mesma.


Objetivo da Camada Sessão:
  • O propósito da camada de sessão é sincronizar o diálogo.
  • Gerir a troca de dados entre entidades da camada de apresentação comunicantes.
  • Para isso, a camada de sessão fornece serviços para o estabelecimento de uma conexão-de-sessão entre duas entidades de apresentação, através do uso de uma conexão de transporte.


Serviços da camada de Sessão:
  • Administração de sessão: Une duas entidades para um relacionamento e mais tarde as desune. (ex. de união: login/autenticação e desunião: logoff).
  • Diálogo da sessão: Controla troca de dados, delimita e sincroniza operações em dados entre duas entidades. Ex. pode-se abrir uma conexão de sessão para trocar informações em half, full-duplex, etc...
  • Os serviços oferecidos pela camada de sessão, são os primeiros a se preocuparem com as aplicações propriamente ditas, além do serviço da mera comunicação.


A camada de Aplicação do modelo OSI.

·         Esta camada protocolar vem resolver vários problemas geralmente comuns na transferência de informação, preocupando-se mais com a sintaxe e semântica da infomação em vez da transferência fiável da informação que é gerida pelas camadas inferiores.


Objetivo da camada 6 - Apresentação
  • Esta camada tem como finalidade converter a representação da informação para um formato universal e deste modo facilitar as comunicações entre aplicações que residem em ambientes muito diferentes um do outro.
  • A camada de apresentação recebe os dados do nível 7 na forma local e converte-os para um destes formatos universais antes de os transferir para a camada 5.
  • No sentido inverso, realiza a conversão em sentido contrário.

Aplicação de rede
  • Processo: programa executado num host.
  • Dentro do mesmo host:
    • Inter proccess communication (definido pelo OS).
  • Processos executados em diferentes hosts comunicam com um protocolo da camada de aplicação.
  • Agente utilizador: software que serve de interface com o utilizador de um lado e com a rede de outro.
  • Implementa protocolo da camada de aplicação.
    • web: browser
    • e-mail: leitor de correio
    • streaming audio/vídeo: media player


Streaming
  • Streaming (fluxo de média (portugues europeu) ou fluxo de mídia (português brasileiro) é uma forma de distribuir informação multimédia numa rede através de pacotes.
  • A informação pode ser transmitida em diversas arquiteturas, como na forma Multicast IP ou Broadcast.

Noção de subnetting


Dividir uma rede em sub-redes significa utilizar a máscara de sub-rede para dividir a rede em segmentos menores ou sub-redes.


Criação de subnets
  • É necessário saber quantas sub-redes são necessárias em cada rede.
  • Com as sub-redes a rede não fica limit às máscaras em rede das classes A, B ou C.
  • Os endereços incluem a parte da rede mais um campo de sub-rede e um campo de host.
  • Para criar um endereço de sub-rede tomam-se emprestados alguns bits do campo do host.
    • A quantidade mínima de bits que podem ser emprestados é 2.
    • A quantidade máxima de bits que podem ser emprestados é qualquer valor que deixe pelo menos 2 bits para o número do host.

Obtenção de Endereços Internet
  • Cada host necessita de um endereço único para poder funcionar na Internet.
  • Os endereços MAC dos hosts têm apenas significado local, identificando o host dentro da Rede Local.
  • Como é um endereços da camada 2, o router não o utiliza para encaminhar fora da LAN



Os hosts possuem um endereço físico pelo facto de terem uma placa de rede que permite a conexão aos meios físicos.
Os endereços IP precisam ser atribuídos ao host e alguma forma. Os dois métodos de atribuição de endereços IP são estático e dinâmico.

Atribuição de endereços IP com RARP
  • O protocolo RARP (Reverse Address Resolution Protocol) associa um endereço MAC conhecido a um endereço IP.
  • É necessário a existência de um servidor RARP para o processamento de pedidos.
  • Um dispositivo ao arrancar pode desconhecer o seu endereço IP.
  • O dispositivo conhece o endereço MAC associado à sua NIC.
  • Envia uma mensagem de RARP Request para o endereço de broadcast.
    • Todos os dispositivos da rede recebem e processam o pedido, mas só o servidor de RARP responde.
    • Na mensagem de RARP Reply, vai a indicação do endereço IP atribuído.


Atribuição de endereços IP com BOOTP
  • O protocolo BOOTP (Bootstrap) permite além do endereço IP, a obtenção do endereço IP de um router, do endereço IP de um servidor e de alguma informação específica.
    • Não fornece atribuição dinâmica de endereços.
      • Um administrador de rede cria um arquivo de configuração que especifica os parâmetros de cada dispositivo.
      • Significa que cada host tem de ter um perfil BOOTP com uma atribuição de endereço IP.
      • Não pode haver dois perfis com o mesmo endereço IP.
    • Utiliza o UDP para transportar as mensagens.


Atribuição de endereços IP com DHCP
O protocolo DHCP (Dynamic Host Configuration Protocol) é o sucessor do BOOTP.
  • O DHCP permite a um host obter um endereço IP dinamicamente sem que o administrador tenha de configurar um perfil individual para cada dispositivo.
  • Tudo o que é necessário ao usar o DHCP é um intervalo de endereços IP definido num servidor DHCP.
  • Quando os hosts entram em contato com o servidor DHCP e solicitam um endereço, o servidor DHCP escolhe um endereço e o atribui a esse host.
  • Com o DHCP, toda a configuração de rede de um computador pode ser obtida em uma única mensagem.
  • Inclui todos os dados fornecidos pela mensagem BOOTP, o endereço IP atribuído e uma camada de sub-rede

Endereçamento IP

Um router encaminha pacotes da rede de origem para a rede de destino utilizando o protocolo IP.

Os pacotes devem incluir um identificador para a rede de origem e para a rede de destino.

Utilizando o endereço IP da rede de destino, um router pode entregar um pacote na rede correta.

Quando o pacote chega a um router ligado à rede de destino, esse router utiliza o endereço IP para localizar o computador específico ligado a essa rede.

Os endereços IP são divididos em classes.
  • Os endereços de classe A são atribuídos a redes de grande dimensão.
  • Os endereços de classe B são usados para redes de porte médio.
  •  Os de classe C para redes pequenas.
  • A primeira etapa para determinar qual parte do endereço identifica a rede e qual parte identifica o host é identificar a classe do endereço IP.

Network ID e cálculo de hosts por classe de IP



Endereçamento Classful


Os endereços de Classe D são usados para grupos multicast. Não é necessário alocar octetos ou bits para separar os endereços de rede e host. Os endereços de classe E são reservados para pesquisas.

Classe A
  • Suporta redes extremamente grandes, com mais de 16 milhões de endereços de host disponíveis.
    • O primeiro bit de um endereço de classe A é sempre 0.
    • O menor número que pode ser representado é 0000 0000, que também é o 0 decimal.
    • O maior número que pode ser representado é 0111 1111, equivalente a 127 em decimal.
    • Os números 0 e 127 são reservados e não podem ser usados como endereços de rede.
    • Qualquer endereço que comece com um valor entre 1 e 126 no primeiro octeto é um endereço de classe A.
    •  A rede 127.0.0.0 é reservada para testes de loopback.
    • As máquinas podem utilizar este endereço para enviar pacotes para si mesmos.
    • Este endereço não pode ser atribuído a nenhuma rede.


Classe B
  • Utilizado para redes de médio e grande porte.
  • Um endereço IP de classe B utiliza os dois primeiros octetos para indicar o endereço da rede. Os outros dois octetos especificam os endereços dos hosts.
    • Os dois primeiros bits de um endereços de classe B são sempre 10.
    • O menor número que pode ser representado por um endereço de classe B é 1000 0000, equivalente a 128 em decimal.
    • O maior número que pode ser representado é 1011 1111, equivalente a 191 em decimal.
  • Qualquer endereço que comece cou um valor no intervalo de 128 a 191 é um endereço de classe B.

Classe C
  • É a classe de endereço IP mais utilizada.
  • Suporta redes pequenas com um máximo de 254 hosts.
  • Os três primeiros hosts de um endereço C são sempre 110.
  •  O menor número que pode ser representado é 1100 0000, equivalente a 192 em decimal.
  •  O maior número que pode ser representado é 1101 1111, equivalente a 223 em decimal.
  •  Qualquer endereço que comece com um valor no intervalo de 192 a 223 é um endereço classe C.

Classe D
  • A classe de endereços D foi criada para permitir multicasting com um endereço IP.
  • Um endereço de multicast é um endereço de rede que direciona os pacotes com esse endereço de destino para grupos predefinidos de endereços IP.
  • Uma única estação pode transmitir simultâneamente um único fluxo de dados para vários destinatários.
    • Os quatro primeiros bits de um endereços de classe D são sempre 1110.
    • O intervalo de valores do primeiro octeto dos endereços de classe D vai de 1110 0000 a 1110 1111, ou de 224 a 239 em decimal.
    • Um endereço IP que comece com um valor no intervalo de 224 a 239 é um endereço classe D.

Classe E:Endereços reservados
  • Os primeiros quatro bits de um endereço classe E são sempre 1s.
  • O intervalo de valores no primeiro octeto dos endereços de clase E vai de 1111 0000 a 1111 1111, ou de 240 a 255 em decimal.



Protocolos


Na Internet, os protocolos utilizados fazem parte de um conjunto de protocolos. Esta sequência de protocolos chama-se TCP/IP.
Esta contém, designadamente, os seguintes protocolos:
  • HTTP
  • FTP
  • ARP
  • ICMP
  • IP
  • TCP
  • UDP
  • SMTP
  • Telnet
  • NNTP


HTTP
  • O protocolo HTTP (HyperText Transfer Protocol) é o protocolo mais utilizado na Internet desde 1990.
  • O objetivo do protocolo HTTP é permitir uma transferência de ficheiros (essencialmente no formato HTML) localizados graças a uma cadeia de carateres chamada URL entre um navegador (o cliente) e um servidor web.

FTP
  • O protocolo FTP (File Transfer Protocol) é, como o seu nome indica, um protocolo de transferência de ficheiros.


ARP
  • O protocolo ARP tem um papel fundamental entre os protocolos da chamada Internet da sequência TCP/IP, porque permite conhecer o endereço físico de uma placa de rede que corresponde a um endereço IP, é para isso que se chama Protocolo de resolução de endereço (em inglês ARP significa Address Resolution Protocol).

ICMP
  • O protocolo ICMP é um protocolo utilizado para fornecer relatórios de erros à fonte original. Qualquer computador que utilize IP precisa aceitar as mensagens ICMP e alterar o seu comportamento de acordo com o erro relatado. ICMP significa Internet Control Message Protocol.

IP
  • Protocolo de Internet (Internet Protocol) é um protocolo de comunicação usado entre duas ou mais máquinas em rede para encaminhamento dos dados.

TCP
  • Como o nome indica, é um Protocolo de Controle de Transmissão, em inglês, Transmission Control Protocol. É um dos protocolos sob os quais se assenta o núcleo da Internet. É um protocolo de nível da camada de transporte (camada 4) do Modelo OSI e é sobre o qual que se assenta a World Wide Web.

UDP
  • User Datagram Protocol é um protocolo simples da camada de transporte. O protocolo UDP não é confiável, portanto não existem garantias se o pacote irá chegar ou não.

SMTP
  • Simple Mail Transfer Protocol (Protocolo de transferência de correio simples”) é o protocolo padrão para envio de e-mails através da Internet. É um protocolo relativamente simples, baseado em texto não formatado (simples). É bastante fácil testar um servidor SMTP usando TELnet

Telnet
  • O protocolo Telnet é um protocolo standard de Internet que permite a interface de terminais e de aplicações através da Internet. Fornece as regras básicas para permitir ligar um cliente a um intérprete de comando (do lado do servidor). O Telnet já existe há mais de 50 anos, muito antes de aparecer a Internet.

NNTP
  • NNTP é um protocolo da Internet para grupos de discussão da chamada usenet. Especifica o modo de distribuição, busca, recuperação e postagem de artigos usando um sistema de transmissão confiável.

TCP


Transmissão Fiável
  • Confirmação de recepção
    • O recetor confirma, através de uma mensagem curta (Acknowledgemente), que recebeu o segmento enviado;
  • Retransmissão
    • Se a confirmação não for recebida dentro de um período determinado, o segmento é reenviado;


Retransmissão
  • Quanto tempo esperar pela confirmação (ACK)?
    • Depende da distância ao destino e das condições do tráfego no momento.
  • O momento de espera num determinado momento é estimado a partir do Round-Trip Time de cada ligação e do tempo estimado presente:
    • Chama-se, por isso, retransmissão adaptável.
  • O segredo do sucesso do TCP.


Controlo de congestão
  • A congestão é detetada por:
    • Ocorrência de Timeout (ACKs não chegam)
    • Receção duplicada de ACKs.
  • Ao serem detetadas colisões:
    • O envio de segmentos é reduzido drasticamente (Collision Avoidance Algorithm);
    • Depois começa a aumentar devagar, inicialmente e exponencialmente com o tempo (Slow Start Algorithm);

Controlo de Fluxo
  • O recetor:
    • Anuncia, a cada ACK, o espaço livre do seu buffer (window size);
  • O emissor:
    • Envia segmentos até ao limite da janela (window size), sem ter de esperar por confirmação (ACKs);
  • Este mecanismo é conhecido como Protocolo da Janela Deslizante (Sliding Window Protocol).


Encerramento fiável
  • Importante por causa da segurança:
    • Se não for encerrada de forma correta, poderão ficar portas abertas;
    • Alguém mal intencionado poderá aproveitar-se
  • O mecanismo de encerramento de TCP permite que uma das partes termine a ligação e a outra possa continuar a enviar dados;
  • Chama-se half-closed:
    • O fecho da ligação num dos dados não obriga o fecho de ambos.


Formato
  • Source/Destinaton Port
    • Porta remente/destinatária (aplicação);
  • Sequence Number
    • Número de sequência do pacote;
  • Acknowledgement Number
    • Próximo número de sequência que o emissor espera receber;
  • HLen (Header Length)
    • Tamanho do cabeçalho;
  • URG - O campo Urgent Pointer é válido.
  • ACK - O segmento é uma confirmação (Acknowledgement);
  • PSH - O recetor deverá passar os dados para a camada de aplicação logo que possível;
  • RST - Segmento enviado não faz sentido (Exemplo: Porta não Existe);
  • SYN - Pedido de sincronização de números de sequência (para iniciar ligação);
  • FIN - Computador emissor acabou o envio de dados (para terminar ligação);
  • Window
    • Número de bytes que o host está disposto a aceitar (espaço livre na buffer);
  • Checksum
    • Cobre o cabeçalho+dados;
  • Urgent Pointer
    • Posição onde serão colocados os dados urgentes.
  • Options
    • A opção mais comum é a MSS (Maximum Segment Sender) que define o tamanho máximo de segmento que pode ser enviado.

Métodos de conexão por TCP
  • É um método standard que permite a comunicação entre processos (que se encontram eventualmente em diferentes máquinas), isto é, um conjunto de regras e procedimentos a respeitar para emitir e receber dados numa rede.
  • Existem vários métodos, de acordo com o que se espera da comunicação.
  • Certos protocolos, por exemplo, serão especializados na troca de ficheiros (FTP), outros poderão servir para gerir simplesmente o estado da transmissão, e os erros (é o caso do protocolo ICMP), …

Comunicações entre redes

Estruturação em camadas:
  •  Os modelos estruturam-se em camadas hierárquicas.
  •  Uma camada realiza um conjunto de funções e oferece um serviço à camada superior.

Princípios de estruturação em camadas:
  • Independância entre camada (organização interna de cada camada invisível do exterior da camada).
  • Camadas adjacentes comunicam através de interfaces.
  • Valorização dos serviços oferecidos por uma camada.

Os vários níveis surgem para que um nível possa controlar também a informação tratada num nível mais baixo, o que implica maior qualidade nos serviços oferecidos pela rede.

Vantagens:
  • Redução da complexidade de desenvolvimento.
  •  Desenvolvimentos independentes (modulares).
  • Maior flexibilidade e simplicidade de implementação.
  •  Introdução de alterações numa camada.
  • Incorporação de novas tecnologias.
  •  Adoção de normas (standards).

Uma grande preocupação do modelo OSI é, sendo relativamente geral, ser também flexível.

IP - Internet Protocol

Os dados numa rede IP são enviados em blocos referidos como pacotes ou datagramas (os termos são basicamente sinónimos no IP, sendo usados para os dados em diferentes locais nas camadas IP).

Routers e portas de interfaces de routers
  • Cada elemento de rede é composto por diversos componentes que para efeito da sua administração, controlo e gestão importa especificar.
  • Assim, começando pelos routers, temos:
    • interfaces;
    • portas;
    • sub-interface;
    • filas;
    • tabelas de routing ou de indexação de etiquetas
  • Portas
    • Portas bem conhecidas (0-1023): servidor
    • HTTP - 80;
    • SMTP - 25;
    • SSH - 22;
    • Portas efémeras: cliente
  • Por uma questão de melhor compreensão das relações entre objetos estes são organizados de forma hierárquica.


Routers ou roteadores
  • Os routers suportam a entrega indireta de datagramas IP.
  • Utilizam tabelas de routing.
  • Usualmente um datagrama pode:
    • Ser enviado diretamente para o destino.
    • Ser enviado para o próximo router na direção do destino.
    • Ser enviado para o router por omissão.