estudos de redes - fev11(importante)
Post on 29-Jun-2015
177 Views
Preview:
DESCRIPTION
TRANSCRIPT
A utilidade das portas
Numerosos programas TCP/IP podem ser executados simultaneamente na Internet (pode, por exemplo, abrir vários navegadores simultaneamente ou navegar em páginas HTML tdescarregando ao mesmo tempo um ficheiro por FTP). Cada um destes programas trabalha com um protocolo, contudo o computador deve poder distinguir as diferentes fontes de dados.
Assim, para facilitar este processo, cada uma destas aplicações recebe um endereço único na máquina, codificada em 16 bits : uma porta (a combinação endereço IP + porta é então um endereço único no mundo, chamado socket).
O endereço IP serve então para identificar de maneira única um computador na rede enquanto o número de porta indica a aplicação à qual os dados se destinam. Desta maneira, quando o computador recebe informações destinadas a uma porta, os dados são enviados para a aplicação correspondente. Se se tratar de um pedido destinado à aplicação, esta chama-se aplicação servidor. Se se tratar de uma resposta, fala-se então de aplicação cliente.
A função multiplexagem
O processo que consiste em permitir a circulação, numa ligação, de informações que provêm de diversas aplicações chama-se multiplexagem. Da mesma maneira, o facto de conseguir pôr em paralelo (e por conseguinte repartir nas diversas aplicações) o fluxo de dados chama-se desmultiplexagem.
Estas operações são realizadas graças à porta, quer dizer, um número associado a um tipo de aplicação que, combinado com um endereço IP, permite determinar de maneira única uma aplicação que funciona numa dada máquina.
Atribuições por defeito
Existem milhares de portas (estas são codificadas em 16 bits, há por conseguinte, 65536 possibilidades), é por isso que uma atribuição standard foi criada pelo IANA (Internet Assigned Numbers Authority), para ajudar à configuração das redes.
As portas 0 a 1023 são as “portas reconhecidas” ou reservadas (“Well Known Ports”). Geralmente, estão reservadas para os processos sistema (daemons) ou aos programas executados por utilizadores privilegiados. Um administrador rede pode, no entanto, vincular serviços às portas da sua escolha.
As portas 1024 a 49151 chama-se “portas registadas” (“Registered Ports”). As portas 49152 a 65535 são as “portas dinâmicas e/ou privadas” (“Dynamic and/or Private
Ports”).
Eis algumas das portas reconhecidas mais usadas:
Porta Serviço ou Aplicação21 FTP23 Telnet25 SMTP53 Domain Name System63 Whois70 Gopher79 Finger80 HTTP110 POP3119 NNTP
Assim, um servidor (um computador que contactamos que propõe serviços como FTP, Telnet, ...) possui números de portas fixos aos quais o administrador rede associa serviços. Assim, as portas de um servidor estão compreendidas geralmente entre 0 e 1023 (intervalo de valores associados a serviços conhecidos).
Do lado do cliente, a porta é escolhida aleatoriamente entre as disponíveis pelo sistema de exploração. Assim, as portas do cliente nunca serão compreendidas entre 0 e 1023, porque este intervalo de valores representa as portas conhecidas.
O que significa TCP/IP?
O TCP/IP é uma sequência de protocolos. A sigla TCP/IP significa “Transmission Control Protocol/Internet Protocol” e pronuncia-se “T-C-P-I-P”. Provém dos nomes dos dois protocolos essenciais da sequência de protocolos, os protocolos TCP e IP).
O TCP/IP representa, de certa maneira, o conjunto das regras de comunicação na Internet e baseia-se na noção de endereçamento IP, isto é, o facto de fornecer um endereço IP a cada máquina da rede a fim de poder encaminhar pacotes de dados. Já que a sequência de protocolos TCP/IP foi criada no início com um objectivo militar, foi concebida para responder a diversos critérios, entre os quais :
O fraccionamento das mensagens em pacotes; A utilização de um sistema de endereços; O encaminhamento dos dados na rede (routage); O controlo dos erros de transmissão de dados.
O conhecimento do conjunto dos protocolos TCP/IP não é essencial para um simples utilizador, assim como o telespectador não precisa de conhecer o funcionamento da sua televisão, nem as redes audiovisuais. Contudo, o seu conhecimento é necessário para as pessoas que desejam administrar ou manter uma rede TCP/IP.
Diferença entre standard e aplicação
O TCP/IP agrupa globalmente duas noções:
A noção de standard : o TCP/IP representa a forma como as comunicações se efectuam numa rede.
A noção de aplicação : a denominação TCP/IP é frequentemente aplicada também aos softwares baseados no protocolo TCP/IP. O TCP/IP é, com efeito, um modelo no qual os criadores de aplicações rede se apoiam. As aplicações são assim aplicações do protocolo TCP/IP.
O TCP/IP é um modelo em camadas
Para poder aplicar o modelo TCP/IP a qualquer máquina, isto é, independentemente do sistema de exploração, o sistema de protocolos TCP/IP foi decomposto em vários módulos que efectuam cada um uma tarefa precisa. Além disso, estes módulos efectuam estas tarefas uns após os outros numa ordem precisa, temos então um sistema estratificado, é a razão pela qual se fala de modelo em camadas.
O termo "camada" é utilizado para evocar o facto de os dados que transitam na rede atravessarem vários níveis de protocolos. Assim, os dados (pacotes de informações) que circulam na rede são tratados sucessicamente por camada, que acrescenta um elemento de informação (chamado cabeçalho) e depois são transmitidos à camada seguinte.
O modelo TCP/IP é muito próximo do modelo OSI (exemplar comportando 7 camadas) que foi criado pela organização internacional dos standards (ISO, organização internacional de normalização) a fim de normalizar as comunicações entre computadores.
Apresentação do modelo OSI
OSI significa Open Systems Interconnection, que se pode traduzir por "Interconexão de Sistemas Abertos". Este modelo foi implementado pela ISO para aplicar um standard de comunicações entre os computadores de uma rede, isto é, as regras que gerem as comunicações entre computadores. Com efeito, no início das redes cada construtor tinha um sistema próprio (fala-se de "sistema proprietário"). Assim, coexistiam numerosas redes incompatíveis . É a razão pela qual o estabelecimento de uma norma foi necessário.
O papel do modelo OSI consiste em estandardizar a comunicação entre as máquinas para que diferentes construtores possam criar produtos (software ou materiais) compatíveis (mesmo se respeitam pouco escrupulosamente o modelo OSI).
O interesse de um sistema em camadas
O objectivo de um sistema em camadas é separar o problema em diferentes partes (as camadas) de acordo com o seu nível de abstracção.
Cada camada do modelo comunica com uma camada adjacente (a de cima ou a de baixo). Cada camada utiliza assim os serviços das camadas inferiores e fornece os seus às de nível superior.
O modelo OSI
O modelo OSI é um modelo que comporta 7 camadas, enquanto o modelo TCP/IP comporta apenas 4. Na realidade, o modelo TCP/IP foi desenvolvido mais ou menos ao mesmo tempo que o modelo OSI, é a razão pela qual se inspira nela, mas não é totalmente conforme às especificações do modelo OSI. As camadas do modelo OSI são as seguintes :
Nível Antigo modelo Novo modeloNível 7 <tdNível AplicaçãoNível 6 <tdNível ApresentaçãoNível 5 <tdNível SessãoNível 4 <tdNível MessagemNível 3 <tdNível PacoteNível 2 <tdNível TramaNível 1 <tdNível Físico
A camada física define a forma como os dados são convertidos fisicamente em sinais numéricos nos meios de comunicação (impulsos eléctricos, modulação da luz, etc.).
A camada ligação dados define o interface com a placa de rede e a partilha dos meios de transmissão.
A camada rede permite gerir o endereçamento e o encaminhamento dos dados, quer dizer o seu encaminhamento através da rede.
A camada transporte está encarregada do transporte dos dados, o seu corte em pacotes e a gestão dos eventuais erros de transmissão.
A camada sessão define a abertura e o fim das sessões de comunicação entre as máquinas da rede.
A camada apresentação define o formato dos dados manipulados pelo nível aplicativo (a sua representação, eventualmente a sua compressão e a sua codificação) independentemente do sistema.
A camada aplicação assegura o interface com as aplicações. Trata-se do nível mais próximo possível dos utilizadores, gerido directamente pelos softwares.
O modelo TCP/IP
O modelo TCP/IP, inspirado no modelo OSI, retoma a abordagem modular (utilização de módulos ou de camadas) mas contém unicamente quatro :
<thModèle OSI/th>
Camada Aplicação
<tdCouche Transport
<tdCouche Réseau
Camada Acesso rede
Como se pode observar, as camadas do modelo TCP/IP têm tarefas muito mais diversas que as camadas do modelo OSI, já que certas camadas do modelo TCP/IP correspondem à várias camadas do modelo OSI.
Os papéis das diferentes camadas são os seguintes :
Camada Acesso rede : especifica a forma sob a qual os dados devem ser encaminhados independentemente do tipo de rede utilizado
Camada Internet : é encarregada fornecer o pacote de dados (datagrama) Camada Transporte : assegura o encaminhamento dos dados, assim como os mecanismos que
permitem conhecer o estado da transmissão Camada Aplicação : engloba as aplicações standard da rede (Telnet, SMTP, FTP,…)
Eis principais os protocolos que fazem parte da sequência TCP/IP :
Couche Application TCP</a> ou UDPCouche Internet IP</a>, ARP, RARPCouche Accès réseau FDDI</a>, PPP, Ethernet, Anneau à jeton (Token ring)
Encapsulação dos dados
Aquando de uma transmissão, os dados atravessam cada uma das camadas a nível da máquina emissora. A cada camada, uma informação é acrescentada ao pacote de dados, trata-se de um cabeçalho, conjunto de informações que garante a transmissão. A nível da máquina receptora, aquando
da passagem em cada camada, o cabeçalho é lido e seguidamente suprimido. Assim, no momento da recepção, a mensagem está no seu estado original…
A cada nível, o pacote de dados muda de aspecto, porque lhe é acrescentado um cabeçalho, assim as denominações alteram-se de acordo com as camadas:
O pacote de dados chama-se mensagem a nível da camada Aplicação A mensagem é de seguida encapsulada sob a forma de segmento na camada Transporte O segmento, uma vez encapsulado na camada Internet, toma o nome de datagrama Por último, fala-se de trama a nível da camada Acesso rede
A camada Acesso rede
A camada acesso rede é a primeira camada da pilha TCP/IP, oferece as capacidades de aceder a uma rede física qualquer que ela seja, isto é, os meios a implementar a fim de transmitir dados através de uma rede. Assim, a camada acesso rede contém todas as especificações relativas à transmissão de dados numa rede física, quer se trate de rede local (Anel com ficha - token - ring, ethernet, FDDI), conexão com uma linha telefónica ou qualquer tipo de ligação a uma rede. Assegura as noções seguintes :
Encaminhamento dos dados na ligação Coordenação da transmissão de dados (sincronização) Formato dos dados Conversão dos sinais (analógico/numérico) Controlo dos erros à chegada
Felizmente, todas as especificações são transparentes aos olhos do utilizador, porque o conjunto destas tarefas é realizado pelo sistema de exploração, assim como as drivers do material que permite a conexão à rede (ex: driver de placa rede).
A camada Internet
A camada Internet é a camada “mais importante” (todas têm a sua importância) porque é ela que define os datagramas, e que gere as noções de endereçamento IP. Permite o encaminhamento dos datagramas (pacotes de dados) para máquinas distantes, bem como a gestão da sua fragmentação e a sua montagem à recepção.
A camada Internet contém 5 protocolos:
O protocolo IP O protocolo ARP O protocolo ICMP O protocoloRARP Le protocolo IGMP
Os três primeiros protocolos são os protocolos mais importantes desta camada…
A camada Transporte
Os protocolos das camadas precedentes permitiam enviar informações de uma máquina a outra. A camada transporte permite a aplicações que trabalham em máquinas distantes comunicar. O problema consiste em identificar estas aplicações. Com efeito, de acordo com a máquina e o seu sistema de exploração, a aplicação poderá ser um programa, uma tarefa, um processo… Além disso, a denominação da aplicação pode variar de um sistema para outro, é a razão pela qual um sistema de número foi criado para se poder associar um tipo de aplicação a um tipo de dado, estes identificadores tomam o nome de portas.
A camada transporte contém dois protocolos que permitem a duas aplicações trocar dados, independentemente do tipo de rede seguido (quer dizer, independentemente das camadas inferiores…). São os protocolos seguintes :
TCP , um protocolo orientado para a conexão que assegura o controlo dos erros UDP , um protocolo não orientado para a conexão cujo controlo de erros é arcaico
A camada Aplicação
A camada aplicação é a camada situada no topo das camadas de protocolos TCP/IP. Esta contém as aplicações de rede que permitem comunicar graças às camadas inferiores. Os softwares desta camada comunicam graças a um dos dois protocolos da camada inferior (a camada transporte) quer dizer TCP ou UDP.
As aplicações desta camada são de diferentes tipos, mas a maior parte é serviços de rede, ou seja, aplicações fornecidas ao utilizador para assegurar o interface com o sistema de exploração. Pode-se classificá-lo de acordo com os serviços que oferecem :
Os serviços de gestão (transferência) de ficheiro e impressão Os serviços de conexão à rede Os serviços de conexão à distância Os utilitários Internet diversos
O papel do protocolo IP
O protocolo IP faz parte da camada Internet da sequência de protocolos TCP/IP. É um dos protocolos mais importantes da Internet, porque permite a elaboração e o transporte dos datagramas IP (os pacotes de dados), sem contudo assegurar a “entrega”. Na realidade, o protocolo IP trata os datagramas IP independentemente uns dos outro, definindo a sua representação, o seu encaminhamento e a sua expedição.
O protocolo IP determina o destinatário da mensagem graças a 3 campos:
O campo dirige IP : endereço da máquina O campo máscara de subrede: uma máscara de subrede permite ao protocolo IP determinar a
parte do endereço IP que se refere à rede O campo ponte estreita por defeito: Permite ao protocolo Internet saber a que máquina
entregar o datagrama, se por acaso a máquina de destino não está na rede local
Os datagramas
Os dados circulam na Internet sob a forma de datagramas (fala-se também de pacotes). Os datagramas são dados encapsulados, isto é, são dados aos quais se acrescentaram cabeçalhos que correspondem a informações sobre o seu transporte (como o endereço IP de destino).
Os dados contidos nos datagramas são analisados (e eventualmente alterados) pelos switchs que permitem o seu trânsito.
Eis o aspecto de um datagrama:
32 bits -->
<--
Versão (4 bits)
Comprimento de cabeçalho (4 bits)
Tipo de serviço (8 bits)
Comprimento total (16 bits)
Identificação (16 bits)
Bandeira (3 bits)
Desfasamento fragmento (13 bits)
Duração de vida (8 bits)
Protocolo (8 bits)
Soma de controlo cabeçalho (16 bits)
Endereço IP fonte (32 bits)
Endereço IP destino (32 bits)
Dados
Eis o significado dos diferentes campos:
Versão (4bits): trata-se da versão do protocolo IP que se utiliza (actualmente utiliza-se a versão 4 IPv4) para verificar a validade do datagrama. É codificada em 4 bits.
Comprimento de cabeçalho, ou IHL para Internet Header Length (4 bits): trata-se do número de palavras de 32 bits que constituem o cabeçalho (nota: o valor mínimo é 5). Este campo é codificado em 4 bits.
Tipo de serviço (8 bits): indica a maneira segundo a qual o datagrama deve ser tratado. Comprimento total (16 bits) : indica a dimensão total do datagrama em bytes. A dimensão
deste campo de 2 bytes, a dimensão total da datagrama não pode exceder 65536 bytes. Utilizado conjuntamente com a dimensão do cabeçalho, este campo permite determinar onde estão situados os dados.
Identificação, bandeiras (flags) e deslocação de fragmento são campos que permitem a fragmentação dos datagramas, e que serão explicados abaixo.
Duração de vida chamada também TTL, para Time To Live (8 bits): este campo indica o número máximo de switchs através através dos quais o datagrama pode passar. Assim este campo é reduzido a cada passagem em switch, quando este atinge o valor crítico de 0, o switch destrói o datagrama. Isto evita o congestionamento da rede pelos datagramas perdidos.
Protocolo (8 bits): este campo, em notação decimal, permite saber de que protocolo procede o datagrama
o ICMP : 1 o IGMP : 2 o TCP : 6 o UDP : 17
Soma de controlo do cabeçalho ou, em inglês, header checksum (16 bits) : este campo contém um valor codificado de 16 bits, que permite controlar a integridade do cabeçalho a fim de determinar se este não foi alterado durante a transmissão. A soma de controlo é o complemento de todas as palavras de 16 bits do cabeçalho (campo soma de controlo excluído). Isto faz-se para que, quando se faz a soma dos campos do cabeçalho (soma de controlo incluída), se obtenha um número com todos os bits posicionados a 1.
Endereço IP fonte (32 bits) : Este campo representa o endereço IP da máquina emissora, permite ao destinatário responder
Endereço IP destino (32 bits) : endereço IP do destinatário da mensagem
A fragmentação dos datagramas IP
Como vimos anteriormente, a dimensão máxima de um datagrama é de 65536 bytes. Contudo, este valor nunca é atingido porque as redes não têm uma capacidade suficiente para enviar pacotes assim tão grandes. Além disso, as redes na Internet utilizam diferentes tecnologias, de modo que a dimensão máxima de um datagrama varia de acordo com o tipo de rede.
A dimensão máxima de uma trama chama-se MTU (Maximum Transfer unit), que provocará a fragmentação do datagrama se este tiver uma dimensão maior do que a MTU da rede.
Tipo de rede MTU (em bytes)Arpanet 1000Ethernet 1500FDDI 4470
A fragmentação de um datagrama faz-se a nível dos switchs, ou seja, durante a transição de uma rede cuja MTU é considerável para uma rede cuja MTU é mais fraca. Se o datagrama for demasiado grande para passar na rede, o switch vai fragmentá-lo, quer dizer, recortá-lo em fragmentos de dimensões inferiores ao MTU da rede e de modo a que a dimensão do fragmento seja um múltiplo de 8 bytes.
O switch vai seguidamente enviar estes fragmentos de maneira independente e reencapsulá-los (acrescentar um cabeçalho a cada fragmento) de maneira a ter em conta a nova dimensão do fragmento. Além disso, o switch acrescenta informações para que a máquina de destino possa remontar os fragmentos na boa correcta. Nada nos diz, contudo, que os fragmentos chegarão pela boa ordem, já que são encaminhados independentemente uns dos outro.
Para ter em conta a fragmentação, cada datagrama possui vários campos que permitem a sua remontagem
campo deslocação de fragmento (de 13 bits): campo permitindo conhecer a posição do início do fragmento no datagrama inicial. A unidade de medida deste campo é de 8 bytes (o primeiro fragmento que tem um valor de zero).
campo identificação (16 bits) : número atribuído a cada fragmento a fim de permitir a sua remontagem.
campo comprimento total (16 bits): é calculado novamente para cada fragmento. campo bandeira (3 bits): é composto de três bits :
o O primeiro não é utilizado. o O segundo (chamado DF: Don' t Fragment) indica se o datagrama pode ser
fragmentado ou não. Se por acaso um datagrama tem este bit posicionado em 1 e o switch não pode encaminhá-lo sem o fragmentar, então o datagrama é rejeitado com uma mensagem de erro
o O último (designado MF : More Fragments, em portuguêsMais fragmentos) indica se o datagrama for um fragmento de dado (1). Se o indicador estiver a zero, isso indica que o fragmento é o último (por conseguinte , que o switch deveria estar na posse dos fragmentos precedentes) ou que o datagrama não foi alvo de uma fragmentação.
O encaminhamento IP
O encaminhamento IP faz parte integrante da camada IP da sequência TCP/IP. O encaminhamento consiste em assegurar o encaminhamento de um datagrama IP através de uma rede tomando o caminho mais curto. Este papel é assegurado por máquinas chamadas switchs, quer dizer máquinas ligadas (que ligam) pelo menos duas redes.
O protocolo ARP
O objectivo do protocolo ARP
O protocolo ARP tem um papel fundamental entre os protocolos da camada 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 isto que se chama Protocolo de resolução de endereço (em inglês ARP significa Address Resolution Protocol).
Cada máquina ligada à rede possui um número de identificação de 48 bits. Este número é um número único que é fixado a partir do fabrico da placa em fábrica. Contudo, a comunicação na Internet não se faz directamente a partir deste número (porque seria necessário alterar o endereçamento dos computadores cada vez que se alterasse uma placa de rede) mas a partir de um endereço dito lógico, atribuído por um organismo: o endereço IP.
Assim, para fazer a correspondência entre os endereços físicos e os endereços lógicos, o protocolo ARP interroga as máquinas da rede para conhecer o seu endereço físico, seguidamente cria uma tabela de correspondência entre os endereços lógicos e os endereços físicos numa memória secreta.
Quando uma máquina deve comunicar com outra, consulta a tabela de correspondência. Se por acaso o endereço pedido não se encontra na tabela, o protocolo ARP emite um pedido na rede. O conjunto das máquinas da rede vai comparar este endereço lógico ao seu. Se uma dentre elas se identificar com esse endereço, a máquina vai responder à ARP que vai armazenar o par de endereços na tabela de correspondência e a comunicação vai então poder ter lugar…
O protocolo RARP
O protocolo RARP (Reverse Address Resolution Protocol) é muito menos utilizado e significa Protocolo ARP invertido, trata-se por conseguinte de uma espécie de anuário invertido dos endereços lógicos e físicos. Na realidade, o protocolo RARP é utilizado essencialmente para as estações de trabalho que não têm disco duro e que desejam conhecer o seu endereço físico…
O protocolo RARP permite a uma estação conhecer o seu endereço IP a partir de uma tabela de correspondência entre endereço MAC (endereço físico) e endereços IP alojados por uma ponte (gateway) situada na mesma rede local (LAN).
Para tal, é necessário que o administrador defina os parâmetros do gateway (switch) com a tabela de correspondência dos endereços MAC/IP. Com efeito, ao contrário do ARP, este protocolo é estático. É necessário, por isso, que a tabela de correspondência esteja sempre actualizada para permitir a conexão de novas placas de rede.
O RARP sofre de numerosas limitações. Necessita muito tempo de administração para manter tabelas importantes nos servidores. Isto é ainda mais evidente quando a rede é grande. Tal facto coloca o problema do recurso humano, necessário para a manutenção das tabelas de correspondência, e das capacidades dos materiais que alojam a parte servidor do protocolo RARP. Com efeito, o RARP permite a vários servidores responder pedidos, embora não preveja mecanismos que garantam que todos os servidores são capazes de responder, nem mesmo que respondam de maneira idêntica. Assim, neste tipo de arquitectura não se pode ter confiança num servidor RARP para saber se um endereço MAC poder ser vinculado a um endereço IP, porque outros servidores ARP podem ter uma resposta diferente. Uma outra limitação de RARP é que um servidor pode servir apenas um LAN. Para paliar os dois primeiros problemas de administração, o protocolo RARP pode ser substituído pelo protocolo DRARP, que é uma versão dinâmica. Uma outra abordagem, consiste em utilizar um servidor DHCP, que lhe permite uma resolução dinâmica dos endereços. Além disso, o DHCP é compatível com o protocolo BOOTP. Funciona apenas com IP.
O protocolo ICMP
A gestão dos erros
O protocolo ICMP (Internet Control Message Protocol) é um protocolo que permite gerir as informações relativas aos erros ns máquinas conectadas. Dado os poucos controlos que o protocolo IP realiza, permite não corrigir estes erros mas dá-los a conhecer aos protocolos das camadas vizinhas. Assim, o
protocolo ICMP é utilizado por todos os switchs, que o utilizam para assinalar um erro (chamado Delivery Problem).
As mensagens ICMP encapsuladas
As mensagens de erro ICMP são transportadas na rede sob a forma de datagrama, como qualquer dado. Assim, as mensagens de erro podem elas mesmas estar sujeitas a erros.
Contudo, no caso de erro num datagrama que transporta uma mensagem ICMP, nenhuma mensagem de erro é emitida para evitar um efeito “bola de neve” no caso de incidente sobre a rede.
Eis o aspecto de uma mensagem ICMP encapsulada num datagrama IP:
Rubrica
Mensagem ICMP
Tipo (8 bits)
Código
(8 bits)
Checksum
(16 bits)
Mensagem (dimensão variável)
Significado das mensagens ICMP
Tipo Código Mensagem Significado da mensagem
8 0 Pedido de ECHOEsta mensagem é utilizada quando se utiliza o comando PING. Este comando, permitindo testar a rede, envia um datagrama a um destinatário e pede-lhe que o restitua
3 0 Destinatário inacessível A rede não está acessível
3 1 Destinatário inacessível A máquina não está acessível
3 2 Destinatário inacessível O protocolo não está acessível
3 3 Destinatário inacessível O porto não está acessível
3 4 Destinatário inacessívelFragmentação necessária mas impossível devido à bandeira (flag) DF
3 5 Destinatário inacessível O encaminhamento falhou
3 6 Destinatário inacessível Rede desconhecida
3 7 Destinatário inacessível Máquina desconhecida
3 8 Destinatário inacessível Máquina não ligada à rede (inutilizada)
3 9 Destinatário inacessível Comunicação com a rede proibida
3 10 Destinatário inacessível Comunicação com a máquina proibida
3- 11 Destinatário inacessível Rede inacessível para este serviço
3 12 Destinatário inacessível Máquina inacessível para este serviço
3 11 Destinatário inacessível Comunicação proibida (filtragem)
4 0 Source Quench O volume de dados enviado é demasiado grande, o switch envia esta mensagem para prevenir que está a saturar, a fim
de pedir para reduzir a velocidade de transmissão
5 0Redirecionamento para um hóspede
O switch observa que a estrada de um computador não está boa e envia o endereço switch a acrescentar à tabela de encaminhamento do computador
5 1Redirecionamento para um hóspede e um serviço dado
O switch vê que a estrada de um computador não é boa para um serviço dado e envia o endereço switch a acrescentar à tabela de encaminhamento do computador
5 2Redirecionamento para uma rede
O switch vê que a estrada de uma rede inteira não é boa e envia o endereço switch a acrescentar à tabela de encaminhamento dos computadores da rede
5 3Redirecionamento para uma rede e um serviço dado
O switch vê que a estrada de uma rede inteira não é boa para um serviço dado e envia o endereço switch a acrescentar à tabela de encaminhamento dos computadores da rede
11 0 Tempo ultrapassado
Esta mensagem é enviada quando o tempo de vida de um datagrama é ultrapassado. A rubrica do datagrama é devolvida de modo a que o utilizador saiba qual o datagrama que foi destruído
11 1Tempo de remontagem de fragmento ultrapassado
Esta mensagem é enviada quando o tempo de remontagem dos fragmentos de um datagrama é ultrapassado.
12 0 Rubrica erradaEsta mensagem é enviada quando o campo de uma rubrica está errado. A posição do erro é devolvida
13 0 Timestamp requestUma máquina pede a outra a sua hora e a sua data sistema (universal)
14 0 Timestamp replyA máquina receptora dá a sua hora e a sua data sistema para que a máquina emissora possa determinar o tempo de transferência dos dados
15 0 Pedido de endereço rede Esta mensagem permite pedir à rede um endereço IP
16 0 Resposta de endereço Esta mensagem responde à mensagem precedente
17 0Pedido de máscara de subrede
Esta mensagem permite pedir à rede uma máscara de subrede
18 0Resposta de máscara de subrede
Esta mensagem responde à mensagem precedente
17 0 Timestamp replyA máquina receptora dá a sua hora e a sua data sistema para que a máquina emissora possa determinar o tempo de transferência dos dados
As características do protocolo TCP
O TCP (que significa Transmission Control Protocol, em português: Protocolo de Controlo de Transmissão) é um dos principais protocolos da camada transporte do modelo TCP/IP. Permite, a nível das aplicações, gerir os dados em proveniência da (ou com destino à) camada inferior do modelo (quer dizer, o protocoloIP). Quando os dados são fornecidos ao protocolo IP, este encapsula-os em datagramas IP, fixando o campo protocolo em 6 (para saber que o protocolo ascendente é TCP…). O TCP é um protocolo orientado para a conexão, quer dizer que permite, a duas máquinas comunicantes,
controlar o estado da transmissão. As principais características do protocolo TCP são as seguintes:
TCP permite entregar ordenadamente os datagramas provenientes do protocolo IP TCP permite verificar a onda de dados para evitar uma saturação da rede TCP permite formatar os dados em segmentos de comprimento variável a fim de os "entregar"
ao protocolo IP TCP permite multiplexar os dados, quer dizer, fazer circular simultaneamente informações que
provêm de fontes (aplicações, por exemplo) distintas numa mesma linha TCP permite, por último, o começo e o fim de uma comunicação de maneira educada.
O objectivo do TCP
Graças ao protocolo TCP, as aplicações podem comunicar de forma segura (graças ao sistema de avisos de recepção do protocolo TCP), independentemente das camadas inferiores. Isto significa que routers (que trabalham na camada Internet) têm como único papel o encaminhamento dos dados sob a forma de datagramas, sem se preocuparem com o controlo dos dados, porque este é realizado pela camada transporte (mais concretamente pelo protocolo TCP).
Aquando de uma comunicação através do protocolo TCP, as duas máquinas devem estabelecer uma conexão. A máquina emissora (a que pede a conexão) chama-se cliente, enquanto a máquina receptora se chama servidor. Diz-se então que estamos num ambiente Cliente-Servidor. As máquinas em tal ambiente comunicam em modo ligado, quer dizer que a comunicação se faz nos dois sentidos.
Para permitir o bom desenrolar da comunicação e de todos os controlos que a acompanham, os dados são encapsulados, isto é, juntamos ao pacote de dados um cabeçalho que vai permitir sincronisar as transmissões e assegurar a sua recepção.
Uma outra particularidade do TCP é poder controlar o débito dos dados graças à sua capacidade para emitir mensagens de dimensão variável: estas mensagens designam-se "segmentos".
A função multiplexagem
O TCP permite efetuar uma tarefa importante: multiplexagem/desmultiplexagem, quer dizer fazer transitar numa mesma linha dados que provêm de aplicações diversas ou, por outras palavras, pôr em série informações que chegam em paralelo.
Estas operações são realizadas graças ao conceito de portas(ou sockets), quer dizer, um número associado a um tipo de aplicação que, combinado com um endereço IP, permite determinar de maneira única uma aplicação que funciona numa dada máquina.
O formato dos dados em TCP
Um segmento TCP é constituído do seguinte modo :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31Porta Fonte Porta destino
Número de ordem
Número de aviso de recepçãoDesfasamento dados
reservada URG ACK PSH RST SYN FIN Janela
Soma de controlo Ponteiro de emergênciaOpções Enchimento
Dados
Significado dos diferentes campos:
Porta Fonte (16 bits): Porta relativa à aplicação corrente na máquina fonte Porta Destino (16 bits): Porta relativa à aplicação corrente na máquina de destino Número de ordem (32 bits): Quando a bandeira SYN é 0, o número de ordem é o da primeira
palavra do segmento corrente.
Quando SYN é 1, o número de ordem é igual ao número de ordem inicial utilizado para sincronizar os números de sequência (ISN)
Número de aviso de recepção (32 bits): O número de aviso de recepção, igualmente chamado número de pagamento, corresponde ao número (de ordem) do próximo segmento esperado, e não o número do último segmento recebido.
Desfasamento dos dados (4 bits) : permite localizar o início dos dados no pacote. O desfasamento é aqui essencial, porque o campo de opções é de dimensão variável
Reservadas(6 bits): Campo inutilizado actualmente, mas previsto para o futuro As bandeiras(flags) (6x1 bit): representam informações suplementares:
o URG: se esta bandeira for 1 o pacote deve ser tratado de maneira urgente. o ACK: se esta bandeira for 1 o pacote é um aviso de recepção. o PSH (PUSH): se esta bandeira for 1, o pacote funciona de acordo com o método PUSH. o RST: se esta bandeira for 1, a conexão é reiniciada. o SYN: A Bandeira TCP SYN indica um pedido de estabelecimento de conexão. o FIN: se esta bandeira for 1, a conexão interrompe-se.
Janela (16 bits): Campo permitindo conhecer o número de bytes que o receptor deseja receber sem aviso de recepção
Soma de controlo : (Checksum ou CRC) : A soma de controlo é realizada fazendo a soma dos campos de dados do cabeçalho, para poder verificar a integridade do cabeçalho
Ponteiro de emergência (16 bits): Indica o número de ordem a partir do qual a informação se torna urgente
Opções (Dimensão variável): Opções diversas Preencher : Preenche-se o espaço que fica após as opções com zeros, para ter um
comprimento múltiplo de 32 bits
Fiabilidade das transferências
O protocolo TCP permite assegurar a transferência dos dados de maneira fiável, embora utilize o protocolo IP, que não integra nenhum controlo de entrega de datagrama.
Na realidade, o protocolo TCP possui um sistema de aviso de recepção que permite ao cliente e ao servidor terem a certeza da recepção correcta e mútua dos dados. Aquando da emissão de um segmento, um número de ordem (chamado também número de sequência) é associado. Aquando da recepção de um segmento de dado, a máquina receptora vai devolver um segmento de dado cuja bandeira ACK é 1 (para assinalar que se trata de um aviso de recepção), acompanhado de um número de aviso de recepção igual ao número de ordem precedente.
Além disso, graças a um cronómetro desencadeado a partir da recepção de um segmento a nível da máquina emissora, o segmento é reenviado assim que o tempo fixado esgotar, porque neste caso a máquina emissora considera que o segmento se perdeu…
Contudo, se o segmento não se perder e chegar mesmo assim ao destino, a máquina receptora saberá, graças ao número de ordem, que se trata de uma cópia e conservará apenas o último segmento a chegar ao destino…
Estabelecimento de uma ligação
Já que este processo de comunicação, que se faz graças a uma emissão de dados e a um aviso de recepção, se baseia num número de ordem (chamado geralmente número de sequência), é necessário que as máquinas emissoras e receptoras (cliente e servidor) conheçam o número de ordem inicial da outra máquina.
O estabelecimento da ligação entre duas aplicações faz-se frequentemente de acordo com o esquema seguinte:
As portas TCP devem estar abertas A aplicação no servidor é passiva, quer dizer que a aplicação está à escuta, à espera de uma
conexão A aplicação no cliente faz um pedido de conexão ao servidor cuja aplicação está em abertura
passiva. Diz-se que a aplicação do cliente está “em abertura activa”
As duas máquinas devem então sincronisar as suas sequências graças a um mecanismo chamado habitualmente three ways handshake (aperto de mãos em três tempos), que encontramos também aquando do encerramento de sessão.
Este diálogo permite iniciar a comunicação e desenrola-se em três tempos, como a sua denominação o indica:
Inicialmente a máquina emissora (o cliente) transmite um segmento cuja bandeira SYN é de 1 (para assinalar que trata-se de um segmento de sincronização), com um número de ordem NO., que chama-se número de ordem inicial do cliente
Subsequentemente a máquina receptora (o servidor) recebe o segmento inicial que provem do cliente, seguidamente envia-lhe um acusado de recepção, quer dizer um segmento cuja bandeira ACK é de 1 e a bandeira SYN é de 1 (porque trata-se lá ainda de uma sincronização). Este segmento contem o número de ordem desta máquina (do servidor) que é o número de ordem inicial do cliente. O campo mais importante deste segmento é o campo acusado de recepção que contem o número de ordem inicial do cliente, incrementado de 1
Por último, o cliente transmite ao servidor um acusado de recepção, quer dizer um segmento cuja bandeira ACK é de 1, cuja bandeira SYN é à zero (não se age mais de um segmento de sincronização). O seu número de ordem é incrementado e o número de acusado de recepção representa o número de ordem inicial do servidor incrementado de 1
Sequência à esta sequência que comporta três trocas as duas máquinas synchronisées e a comunicação pode começar!
Existe uma técnica de pirataria, chamada spoofing IP, permitindo corromper esta relação de aprovação à fins maliciosos!
Método da janela deslizando
Numerosos em casos, é possível limitar o número de acusados de recepção, a fim de descongestionar a rede, fixando um número de sequência à extremidade do qual acusado de recepção é um necessário. Este número com efeito é armazenado no campo janela da rubrica TCP/IP.
Chama-se certamente este método “método da janela que desliza” porque ele define-se em certa medida um garfo de sequências que não têm necessidade de acusado de recepção, e esta desloca-se a medida que os acusados de recepção forem recebidos.
De mais, a dimensão desta janela não é fixa. Com efeito, o servidor pode incluir nos seus acusados de recepção armazenando no campo fenestra a dimensão da janela que lhe parece adaptado. Assim, quando o acusado de recepção indica um pedido de aumento da janela, o cliente vai deslocar o bordo direito da janela.
Em contrapartida, no caso de uma diminuição, o cliente não vai deslocar o bordo direito da janela para a esquerda mas esperar que o bordo esquerdo avança (com a chegada dos acusados de recepção).
Fim de uma conexão
O cliente pode pedir a pôr fim à uma conexão assim como o servidor. O fim da conexão faz-se como segue ::
Uma das máquinas envia um segmento com a bandeira FIN à 1, e a aplicação põe-se em estado de espera de fim, quer dizer que termina receber o segmento corrente e ignora os seguintes
Após recepção deste segmento, a outra máquina envia um acusado de recepção com a bandeira FIN à 1 e continua expedir os segmentos correntes. Sequência àaquilo a máquina informa a aplicação que um segmento FIN foi recebido, seguidamente envia um segmento FIN à outra máquina, que encerra a conexão…
As características do protocolo UDP
O protocolo UDP (User Datagram Protocol) é um protocolo não orientado para a conexão da camada transporte do modelo TCP/IP. Este protocolo é muito simples já que não fornece controlo de erros (não está orientado para a conexão…).
A rubrica do segmento UDP é por conseguinte muito simples :
Porta Fonte (16 bits)
Porta Destino (16 bits)
Comprimento (16 bits)
Soma de controlo (16 bits)
Dados (comprimento variável)
Significado dos diferentes campos
Porta Fonte : trata-se do número de porta que corresponde à aplicação emissora do segmento UDP. Este campo representa um endereço de resposta para o destinatário. Assim, este campo é opcional, isto significa que se não se precisar a porta fonte, as 16 bits deste campo serão postas a zero, neste caso o destinatário não poderá responder (isto não é necessariamente necessário, nomeadamente para mensagens unidireccionais.
Porta Destino : Este campo contém a porta que corresponde à aplicação da máquina destinatário à qual nos dirigimos.
Comprimento : Este campo precisa o comprimento total do segmento, incluindo o cabeçalho, ora o cabeçalho tem um comprimento de 4 x 16 bits (são 8 x 8 bits), então o campo comprimento é necessariamente superior ou igual a 8 bytes.
Soma de controlo : Trata-se de uma soma de controlo realizada de maneira a poder controlar a integridade do segmento.
O encaminhamento na Internet
Os routers
Os routers são os dispositivos que permitem “escolher” o caminho que os datagramas vão seguir para chegar ao destino. Trata-se de máquinas que têm várias placas de rede, cada uma ligada a uma rede diferente. Assim, na configuração mais simples, o switch tem apenas “de ver” em que rede se encontra um computador para lhe entregar os datagramas provenientes do remetente.
Contudo, na Internet o esquema é muito mais complicado pelas seguintes razões:
O número de redes às quais o switch está ligado é geralmente considerável
As redes às quais o switch está ligado podem estar ligadas a outras redes que o switch não conhece directamente
Assim, os routers funcionam graças a tabelas de encaminhamento e protocolos de encaminhamento, de acordo com o seguinte modelo:
O switch recebe uma trama que provém de uma máquina conectada a uma das redes à qual está ligada
Os datagramas são transmitidos à camada IP O switch vê o cabeçalho do datagrama Se o endereço IP de destino pertencer a uma das redes às quais um dos interfaces switch está
associado, a informação deve ser enviada à camada 4 depois de o cabeçalho IP ter sido retirado Se o endereço IP de destino fizer parte de uma rede diferente, o switch consulta a sua tabela de
encaminhamento, uma tabela que define o caminho a seguir para um endereço dado O switch envia o datagrama graças à placa de rede ligada à rede na qual o switch decide enviar
o pacote
Assim, há dois cenários, ou o emissor e o destinatário pertencem à mesma rede( neste caso fala-se de entrega directa), ou há pelo menos um switch entre o remetente e o destinatário (neste caso fala-se de entrega indirecta).
No caso da entrega indirecta, o papel do switch, e nomeadamente o da tabela de encaminhamento, é muito importante. Assim, o funcionamento do switch é determinado pela maneira segundo a qual esta tabela de encaminhamento é criada.
Se a tabela de encaminhamento for introduzida manualmente pelo administrador, fala-se de encaminhamento estático (viável para pequenas redes)
Se o switch construir ele mesmo a tabela de encaminhamento em função de informações que recebe (através de protocolos de encaminhamento), fala-se de encaminhamento dinâmico
A tabela de encaminhamento
A tabela de encaminhamento é uma tabela de correspondência entre o endereço da máquina visada e o nó seguinte, ao qual o switch deve entregar a mensagem. Na realidade, basta que a mensagem seja entregue na rede que contém a máquina, por isso não é necessário armazenar o endereço IP completo da máquina: só o identificador da rede do endereço IP (quer dizer, o ID rede) tem de ser armazenado.
A tabela de encaminhamento é por conseguinte um quadro que contém pares de endereços :
<Endereço do próximo switch directamente acessível
Assim, graças a esta tabela, o switch, conhecendo o endereço do destinatário encapsulado em mensagem, vai saber para que interface enviar a mensagem (o que equivale a saber que placa de rede utilizar), e a que switch, directamente acessível na rede à qual aquela placa está ligada, entregar o datagrama. Este mecanismo, que consiste em conhecer unicamente o endereço do próximo elo conduzindo ao destino , designa-se "encaminhamento por saltos sucessivos" (em inglês next-hop routing).
Contudo, pode acontecer que o destinatário pertença a uma rede não referida na tabela de encaminhamento. Neste caso, o switch utiliza o switch por defeito (chamado também ponte estreita por defeito).
Eis, de maneira simplificada, o aspecto aproximado de uma tabela de encaminhamento :
<tdAdresse du prochain routeur directement accessible
<td131.124.51.108
<td131.124.51.108
<td194.8.212.6
<td129.15.64.87
A mensagem é assim transmitida de switch em switch por saltos sucessivos, até que o destinatário pertença a uma rede directamente ligada ao switch. Nesse momento, o switch entrega directamente a mensagem à máquina visada…
No caso do encaminhamento estático, é o administrador que actualiza a tabela de encaminhamento. No caso do encaminhamento dinâmico, em contrapartida, um protocolo chamado protocolo de encaminhamento permite a actualização automática da tabela, para que contenha a qualquer momento a estrada ideal.
Os protocolos de encaminhamento
A Internet é um conjunto de redes ligadas. Por conseguinte, todos os routers não fazem o mesmo trabalho, de acordo com o tipo de rede qual se encontram.
Com efeito, há diferentes níveis de routers (switchs), e estes funcionam por conseguinte com protocolos diferentes:
os routers núcleos são routers principais porque são eles que ligam as diferentes redes os routers externos permitem uma ligação das redes autónomas entre elas. Funcionam com
um protocolo chamado EGP (Exterior Gateway Protocol) que evolui pouco a pouco conservando a mesma denominação
os routers internos permitem o encaminhamento das informações dentro de uma rede autónoma. Trocam informações entre eles graças a protocolos chamados IGP (Interior Gateway Protocol), como o RIP e o OSPF
O protocolo RIP
RIP significa Routing Information Protocol (protocolo de informação de encaminhamento). Trata-se de um protocolo de tipo Vector Distância , o que quer dizer que cada switch comunica aos outros routers a distância que os separa (o número de saltos que os separam). Assim, quando o switch recebe uma destas mensagens ele incrementa esta distância de 1 e comunica a mensagem aos routers directamente acessíveis. Os routers podem, por conseguinte, conservar desta maneira a estrada ideal de uma mensagem ,armazenando o endereço switch seguinte na tabela de encaminhamento de modo a que o número de saltos para atingir uma rede seja mínimo. Contudo, este protocolo tem em conta apenas a distância entra duas máquinas em termos de saltos, mas não considera o estado da ligação a fim de escolher a melhor banda concorrida possível.
O protocolo OSPF
O OSPF (Open Shortest Path First) é mais eficiente do que o RIP e começa por conseguinte a substituí-lo pouco a pouco. Trata-se de um protocolo de tipo protocolo route-link (que se poderia traduzir por "Protocolo de estado das ligações"), o que significa que, contrariamente ao RIP, este protocolo não envia aos routers adjacentes o número de saltos que os separam, mas o estado da ligação que os separa. Desta maneira, cada switch é capaz de elaborar um mapa do estado da rede e pode por conseguinte escolher, a qualquer momento, a estrada mais adequada para uma mensagem dada.
Além disso, este protocolo evita que routers intermédios incrementem o número de saltos, o que se traduz por uma informação muito menos abundante, que permite ter uma melhor banda concorrida útil do que com o RIP.
QoS - Qualidade de serviço
Noção de qualidade de serviço
O termo QoS (acrónimo de “Quality of Service”, em português “Qualidade de Serviço”) designa a capacidade de fornecer um serviço (nomeadamente um apoio de comunicação) conforme às exigências em matéria de tempos de resposta e de banda concorrida.
Aplicado às redes de comutação de pacotes (redes baseadas na utilização de switchs) o QoS designa a aptidão de garantir um nível aceitável de perda de pacotes, definido contratualmente, para um uso dado (vozes em IP, videoconferência, etc.).
Com efeito, contrariamente às redes de comutação de circuitos, como a rede telefónica comutada, onde um circuito de comunicação é dedicado durante toda a duração da comunicação, é impossível na Internet predizer o caminho seguido pelos diferentes pacotes.
Assim, nada garante que uma comunicação que necessita uma regularidade do débito possa ter lugar sem congestionamento. É por isso que existem mecanismos, chamados "mecanismos de QoS", permitindo diferenciar os diferentes fluxos rede e reservar uma parte da banda concorrida para os que necessitam um serviço contínuo, sem cortes..
Níveis de serviço
O termo “nível de serviço” (em inglês Service level) define o nível de exigência para a capacidade de uma rede de fornecer um serviço ponto a ponto ou de extremidade a extremidade com um tráfego dado. Definem-se geralmente três níveis de QoS:
Melhor esforço (em inglês best effort), que não fornece nenhuma diferenciação entre vários fluxos redes e que não permite nenhuma garantia. Este nível de serviço é também chamado lack of QoS.
Serviço diferenciado (em inglês differenciated service ou soft QoS), permitindo definir níveis de prioridade para os diferentes fluxos rede, sem contudo fornecer uma garantia estrita.
Serviço garantido (em inglês guaranteed service ou hard QoS), consistindo em reservar recursos rede para certos tipos de fluxos. O principal mecanismo utilizado para obter tal nível de serviço é o RSVP (Resource reSerVation Protocol, que se pode traduzir como Protocolo de reserva de recursos).
Critérios de qualidade de serviço
Os principais critérios que permitem apreciar a qualidade de serviço são os seguintes:
Débito (em inglês bandwidth), às vezes chamado banda concorrida por abuso de linguagem, define o volume máximo de informação (bits) por unidade de tempo.
Flutuação (em inglês jitter): representa a flutuação do sinal numérico, no tempo ou em fase. Latência, prazo ou tempo de resposta (em inglês delay): caracteriza o atraso entre a emissão e
a recepção de um pacote.
Perda de pacote (em inglês packet loss): corresponde à não entrega de um pacote de dados, a maior parte do tempo devido a uma obstrução na rede.
Desequencing: trata-se de uma modificação na ordem de chegada dos pacotes.
MPLS - MultiProtocol Label Switching
Noção de qualidade de serviço
O termo MPLS (acrónimo de “MultiProtocol Label Switching”, em português “Qualidade de Serviço”) representa um conjunto de especificações definidas pelo IETF (Internet EngineeringTaskForce) que consiste em dotar as tramas que circulam na rede de uma etiqueta que serve para indicar aosswitchs o caminho que o dado deve seguir. O MPLS serve assim para a gestão da qualidade de serviço, definindo 5 classes de serviços (em inglês, Classes of Service, notado CoS):
Vídeo. A classe de serviço para o transporte de vídeo possui um nível de prioridade mais elevado que as classes de serviço de dados.
Voz. A classe de serviço para o transporte de voz possui um nível de prioridade equivalente ao de vídeo, quer dizer, mais elevado que as classes de serviço de dados.
Dados muito prioritários (D1). Trata-se da classe de serviço que possui o mais elevado nível de prioridade para os dados. Serve nomeadamente para as aplicações que têm necessidades críticas em termos de desempenho, de disponibilidade e de banda concorrida.
Dados prioritários (D2). Esta classe de serviço corresponde a aplicações não críticas que possuem exigências específicas em termos de banda concorrida,
Dados não prioritários (D3), representando a classe de serviço menos prioritária.
As especificações MPLS intervêm a nível da camada 2 do modelo OSI e podem funcionar nomeadamente sobre as redes IP, ATM ou retransmissões de tramas.
Os protocolos PPP e SLIPA maior parte das pessoas, que não têm em casa uma linha (cabo ou ethernet) ligada directamente à Internet, é obrigada a utilizar as linhas telefónicas (a rede mais usada) para se ligar à Internet. A conexão faz-se graças a um modem, um aparelho capaz de converter os dados numéricos do computador em sinais analógicos (podendo circular na linha telefónica por modulação de amplitude ou de frequência, assim como a voz quando utiliza o telefone).
Já que só dois computadores comunicam e que o débito de uma linha telefónica é fraco em relação ao de uma rede local, é necessário utilizar um protocolo que permite uma comunicação standard entre as diferentes máquinas que utilizam um modem, sobrecarregando a linha telefónica. Estes protocolos chamam-se protocolos modem.
Noção de ligação ponto a ponto
Pela linha telefónica clássica, dois computadores, no máximo, podem comunicar por modem, assim como não é possível ligar simultaneamente para duas pessoas pela mesma linha telefónica. Diz-se então que se tem uma ligação ponto a ponto, quer dizer uma ligação entre duas máquinas reduzida à sua mais simples expressão: não é preciso partilhar a linha entre várias máquinas, cada uma fala e responde por sua vez.
Assim, foram criados numerosos protocolos de modem. Os primeiros dentre eles permitiam uma simples transmissão de dados entre duas máquinas, seguidamente alguns foram dotados de um
controlo de erro, e com o aumento da Internet, foram dotados da capacidade de dirigir máquinas. Desta maneira, existem doravante dois grandes protocolos de modem:
SLIP: um protocolo antigo, fraco em controlos PPP: o protocolo mais utilizado para os acessos à Internet por modem, autoriza um
endereçamento das máquinas
O protocolo SLIP
SLIP significa Serial Line Internet Protocol, que se pode traduzir por protocolo Internet de ligação em série. O SLIP é o resultado da integração dos protocolos modens que precedem a sequência de protocolos TCP/IP.
Trata-se de um protocolo de ligação Internet simples, que não efectua nem controla endereço, nem controlo de erro, e esta é a razão pela qual rapidamente ficou obsoleto em relação ao PPP.
A transmissão de dados com o SLIP é muito simples: este protocolo envia uma trama composta unicamente dos dados a enviar seguidos de um carácter de fim de transmissão (o caráter END, cujo código ASCII é 192). Uma trama SLIP assemelha-se então a isto:
Dados a transmitir END
O protocolo PPP
PPP significa Point to Point Protocol, (protocolo ponto a ponto). Trata-se de um protocolo muito mais elaborado que o SLIP (é a razão pela qual o suplantou), na medida em que transfere dados suplementares, melhor adaptados à transmissão de dados na Internet (a adição de informações numa trama deve-se em grande parte ao aumento da banda concorrida).
O PPP é realmente um conjunto de três protocolos:
um protocolo encapsulado de datagramas um protocolo de controlo de ligação (LCP, Link Control Protocol), permitindo controlos de teste
e configuração da comunicação um conjunto de protocolos de controlo de rede (NCP, Network Control Protocol), permitindo
controlos de integração PPP em protocolos de camadas superiores.
Os dados encapsulados numa trama PPP chama-se pacotes (ou packets, em inglês). Estes pacotes são geralmente datagramas, mas pode acontecer que sejam outros (daí a denominação específica de pacote, em vez de datagrama). Assim, um campo da trama é reservado ao tipo de protocolo ao qual o pacote pertence. Uma trama PPP assemelha-se a isto:
Protocolo (1-2 bytes) Dados a transmitir Dados de enchimentos
Os dados de enchimentos servem para adaptar o comprimento da trama para certos protocolos.
Uma sessão PPP (da abertura ao encerramento) desenrola-se do seguinte modo:
Aquando da conexão, um pacote LCP é enviado No caso de pedido de autenticação por parte do servidor, um pacote que corresponde a um
protocolo de autenticação pode ser enviado (PAP, Senha Autenticação Protocol, ou CHAP, Challenge Handshake Autentication Protocol ou Kerberos)
uma vez a comunicação estabelecida, o PPP envia informações de configuração graças ao protocolo NCP
Os datagramas a enviar são transmitidos sob a forma de pacotes No momento da desconexão, um pacote LCP é enviado para terminar a sessão
O protocolo HTTP
Introdução ao protocolo HTTP
O protocolo HTTP (HyperText Transfer Protocol) é o protocolo mais utilizado na Internet desde 1990. A versão 0.9 destinava-se unicamente a transferir dados na Internet (em especial páginas Web escritas em HTML). A versão 1.0 do protocolo (a mais utilizada) permite doravante transferir mensagens com cabeçalhos que descrevem o conteúdo da mensagem utilizando uma codificação de tipo MIMO.
O objectivo do protocolo HTTP é permitir uma transferência de ficheiros (essencialmente no formato HTML) localizados graças a uma cadeia de caracteres chamada URL entre um navegador (o cliente) e um servidor Web (chamado de resto httpd nas máquinas UNIX).
Comunicação entre navegador e servidor
A comunicação entre o navegador e o servidor faz-se em dois tempos :
O navegador efectua um pedido HTTP O servidor trata o pedido e seguidamente envia uma resposta HTTP
Na realidade, a comunicação efectua-se em mais tempo se considerarmos o tratamento do pedido pelo servidor. Dado que nos interessamos unicamente pelo protocolo HTTP, o tratamento do lado de servidor não será esclarecido no âmbito deste artigo… Se este assunto lhe interessar, consulte o artigo sobre o tratamento dos CGI.
Pedido HTTP
Um pedido HTTP é um conjunto de linhas enviado ao servidor pelo navegador. Compreende:
Uma linha de pedido : A linha compreende três elementos que devem ser separados por um espaço:
o O método o O URL o A versão do protocolo utilizado pelo cliente (geralmente HTTP/1.0)
Os campos de cabeçalho do pedido : trata-se de um conjunto de linhas facultativas que permitem dar informações suplementares sobre o pedido e/ou o cliente (Navegador, sistema de exploração,…). Cada um destas linhas é composta por um nome que qualifica o tipo de cabeçalho, seguido de dois pontos (:) e do valor do cabeçalho
O corpo do pedido : é um conjunto de linhas opcionais que devem ser separadas das linhas precedentes por uma linha vazia e permitindo por exemplo um envio de dados por um comando POST aquando do envio de dados ao servidor por um formulário
Um pedido HTTP tem por conseguinte a sintaxe seguinte (<crlf> significa regresso salto de linha):
METHODE URL VERSION<crlf> EN-TETE : Valeur<crlf> . . . EN-TETE : Valeur<crlf> Ligne vide<crlf> CORPS DE LA REQUETE
Eis então um exemplo de pedido HTTP:
GET http://pt.kioskea.net HTTP/1.0 Accept : text/html If-Modified-Since : Saturday, 15-January-2000 14:37:11 GMT User-Agent : Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)
ComandosComando Descrição
GET Pedido do recurso situado na URL especificada
HEAD Pedido do cabeçalho do recurso situado na URL especificada
POST Envio de dados ao programa situado na URL especificada
PUT Envio de dados à URL especificada
DELETE Supressão do recurso situado na URL especificada
RubricasNome da rubrica Descrição
AcceptTipo de conteúdo aceite pelo motor de pesquisa (por exemplo text/HTML). Ver tipos MIMO
Accept-Charset Jogo de caracteres esperado pelo motor de pesquisa
Accept-Encoding Codificação de dados aceite pelo motor de pesquisa
Accept-Language Linguagem esperada pelo motor de pesquisa (inglês, por defeito)
Authorization Identificação do motor de pesquisa junto do servidor
Content-Encoding
Tipo de codificação do corpo do pedido
Content-Language
Tipo de linguagem do corpo do pedido
Content-Length Comprimento do corpo do pedido
Content-Type Tipo de conteúdo do corpo do pedido (por exemplo text/HTML). Ver tipos MIMO
Date Data de início de transferência dos dados
Forwarded Utilizado pelas máquinas intermédias entre o motor de pesquisa e o servidor
From Permite especificar o e-mail do cliente
FromPermite especificar que o documento deve ser enviado se tiver sido alterado a partir de uma certa data
Link Relação entre duas URL
Orig-URL URL de origem do pedido
Referer URL da ligação a partir da qual o pedido foi efectuado
User-AgentCadeia dando informações sobre o cliente, como o nome e a versão do navegador, do sistema de exploração
Resposta HTTP
Uma resposta HTTP é um conjunto de linhas enviadas ao navegador pelo servidor. Compreende:
Uma linha de estatuto : é uma linha que precisa a versão do protocolo utilizado e o estado do tratamento do pedido através de um código e de um texto explicativo. A linha compreende três elementos que devem ser separados por um espaço:
o A versão do protocolo utilizado o O código de estatuto o A significado do código
Os campos de rubrica da resposta : trata-se de um conjunto de linhas facultativas que permitem dar informações suplementares sobre a resposta e/ou o servidor. Cada um destas linhas é composta de um nome que qualifica o tipo de rubrica, seguido de dois pontos (:) e do valor da rubrica
O corpo da resposta : contem o documento pedido
Uma resposta HTTP tem por conseguinte a sintaxe seguinte (<crlf> significa salto de linha) :
VERSION-HTTP CODE EXPLICATION<crlf> EN-TETE : Valeur<crlf> . . . EN-TETE : Valeur<crlf> Ligne vide<crlf> CORPS DE LA REPONSE
Eis aqui um exemplo de resposta HTTP :
HTTP/1.0 200 OK Date : Sat, 15 Jan 2000 14:37:12 GMT Server : Microsoft-IIS/2.0 Content-Type : text/HTML Content-Length : 1245 Last-Modified : Fri, 14 Jan 2000 08:25:13 GMT
CORPO DA RESPOSTANome da rubrica Descrição
Content-Encoding Tipo de codificação do corpo da resposta
Content-Language Tipo de linguagem do corpo da resposta
Content-Length Comprimento do corpo da resposta
Content-Type Tipo de conteúdo do corpo da resposta (por exemplo text/HTML). Ver tipos
MIMO
Date Data de início de transferência dos dados
Expires Data limite de consumo dos dados
Forwarded Utilizado pelas máquinas intermédias entre o motor de pesquisa e o servidor
Location Redireccionamento para uma nova URL associada ao documento
Server Características do servidor que envia a resposta
Os códigos de resposta
São os códigos que vê quando o navegador não lhe consegue mostrar a página pedida. O código de resposta é constituído por três algarismos: o primeiro indica a classe de estatuto e seguintes a natureza exacta do erro.
Código Mensagem Descrição
10x</gras>Mensagem de
informaçãoEstes códigos não são utilizados na versão 1.0 do protocolo
20x</gras> Sucesso Estes códigos indicam o bom desenrolar da transacção
200 OK O pedido foi realizado correctamente
201 CREATEDSegue um comando POST, indica o sucesso, o corpo do resto do documento deve indicar a URL onde o documento recentemente criado deveria encontrar-se.
202 ACCEPTED O pedido foi aceite, mas o procedimento seguinte não foi realizado
203PARTIAL INFORMATION
Quando este código é recebido em resposta a um comando GET, isto indica que a resposta não está completa.
204 NO RESPONSE O servidor recebeu o pedido mas não há informação a devolver
205 RESET CONTENTO servidor indica ao navegador para suprimir o conteúdo dos campos de um formulário
206 PARTIAL CONTENTTrata-se de uma resposta a um pedido que comporta a rubrica range. O servidor deve indicar a rubrica content-range
30x Redirecção Estes códigos indicam que o recurso já não está no lugar indicado
301 MOVED Os dados pedidos foram transferidos para um novo endereço
302 FOUNDOs dados pedidos são de uma nova URL, contudo talvez tenham sido deslocados desde então...
303 METHODIsto implica que o cliente deve tentar um novo endereço, tentando preferivelmente um outro método além do GET
304 NOT MODIFIEDSe o cliente efectuar um comando GET condicional (perguntando se o documento foi alterado desde a última vez) e se o documento não tiver sido alterado, devolve este código.
40xErro devido ao
clienteEstes códigos indicam que o pedido está incorrecto
400 BAD REQUESTA sintaxe do pedido está mal formulada ou é impossível de satisfazer
401 UNAUTHORIZEDO parâmetro da mensagem dá as especificações das formas de autorização aceitáveis. O cliente deve reformular o seu pedido com os bons dados de autorização
402PAYMENT REQUIRED
O cliente deve reformular o seu pedido com os bons dados de pagamento
403 FORBIDDEN O acesso ao recurso é simplesmente proibido
404 NOT FOUNDClássico! O servidor não encontrou nada no endereço indicado. Partiram sem deixar endereço…:)
50xErro devido ao
servidorEstes códigos indicam que houve um erro interno do servidor
500 INTERNAL ERRORO servidor encontrou uma condição inesperada que o impediu de satisfazer o pedido (às vezes acontecem coisas aos servidores…)
501NOT IMPLEMENTED
O servidor não suporta o serviço pedido (não podemos saber fazer tudo, não é?…)
502 BAD GATEWAYO servidor recebeu uma resposta inválida por parte do servidor que tentava aceder agindo como uma ponte estreita ou um proxy
503SERVICE UNAVAILABLE
O servidor não pode responder-lhe no momento presente, porque o tráfego é demasiado denso (todas as linhas do seu correspondente são ocupadas quererão recordar ulteriormente)
504GATEWAY TIMEOUT
A resposta do servidor foi demasiado longa no que diz respeito ao tempo durante o qual a ponte estreita estava preparada para o esperar (o tempo que lhe estava destinado esgotou-se…)
O protocolo LDAP
Introdução ao LDAP
O LDAP (Lightweight Directory Access Protocol, traduzir como Protocolo de acesso aos anuários ligeiro e pronunciar “èl-dap”) é um protocolo standard que permite gerir anuários, quer dizer, aceder a bases de informações sobre os utilizadores de uma rede através de protocolos TCP/IP.
As bases de informações são geralmente relativas a utilizadores, mas às vezes são utilizadas para outros fins como gerir material numa empresa.
O protocolo LDAP, desenvolvido em 1993 pela Universidade do Michigan, tinha por objectivo suplantar o protocolo DAP (que serve para aceder ao serviço de anuário X.500 do OSI). A partir de 1995, o LDAP tornou-se um anuário nativo (standalone LDAP), para não servir unicamente para aceder anuários de tipo X500. O LDAP é assim uma versão aligeirada do protocolo DAP, daí o seu nome Lightweight Directory Acess Protocol.
Apresentação do LDAP
O protocolo LDAP define o método de acesso aos dados no servidor a nível do cliente, e não a maneira como as informações são armazenadas.
O protocolo LDAP está actualmente na versão 3 e foi normalizado pelo IETF (Internet Engineering Task Force). Assim, existe um RFC para cada versão de LDAP, constituindo um documento de referência :
RFC 1777 para LDAP v.2 standard RFC 2251 para LDAP v.3 standard
</uL> Assim, o LDAP fornece ao utilizador métodos que lhe permitem:
conectar-se desligar-se procurar informações comparar informações inserir entradas alterar entradas suprimir entradas
Por outro lado, o protocolo LDAP (na sua versão 3) propõe mecanismos de codificação (SSL,…) e de autenticação (SASL) que permitem proteger o acesso às informações armazenadas na base.
A arborescência de informações (DIT)
O LDAP apresenta as informações sob a forma de uma arborescência de informações hierárquica chamada DIT (Directory Information Tree), na qual as informações, chamadas entradas (ou ainda DSE, Directory Service Entry), são representadas sob a forma de ramos. Um ramo situado na raíz de uma ramificação chama-se raiz ou sufixo (em inglês root entry).
Cada entrada do anuário LDAP corresponde a um objecto abstracto ou real (por exemplo uma pessoa, um objecto material, parâmetros,…). Cada entrada é constituída por um conjunto de pares chave/valor chamados atributos.
Os atributos das entradas
Cada entrada é constituída por um conjunto de atributos (pares chave/valor) que permitem caraterizar o objecto que a entrada define. Existem dois tipos de atributos:
Os atributos normais : estes são os atributos habituais (apelido, nome,…) caracterizando o objecto
Os atributos operacionais : estes são atributos aos quais só o servidor pode aceder a fim de manipular os dados do anuário (datas de modificação,…)
Uma entrada é indexada por um nome distinto (DN, distinguished name) que permite identificar de maneira única um elemento da arborescência.
Um DN constrói-se tomando o nome do elemento, chamado Relative Distinguished Name (RDN, isto é, o caminho da entrada em relação a um dos seus parentes), e acrescentando-lhe o conjunto do nome das entradas parentescos. Trata-se de utilizar uma série de pares chave/valor que permite localizar uma entrada de maneira única. Eis uma série de chaves geralmente utilizadas:
uid (userid), trata-se de um identificador único obrigatório cn (common name), trata-se do apelido da pessoa givenname, trata-se do nome Sn (surname), trata-se do apelido da pessoa o (organization), trata-se da empresa da pessoa u (organizational unit), trata-se do serviço da empresa na qual a pessoa trabalha mail, trata-se do endereço de correio electrónico da pessoa (obviamente)
Assim, um Distinguished Name terá a forma: uid=jeapil,cn=pillou,givenname=jean-francois
O Relative Distinguished Name aqui é “uid=jeapil”.
Assim, chama-se esquema ao conjunto das definições de objectos e de atributos que um servidor LDAP pode gerir. Isto permite por exemplo, definir se um atributo poder possuir um ou vários valores. Por outro lado, um atributo chamado objectclass permite definir os atributos obrigatórios ou facultativos…
Consultar os dados
O LDAP fornece um conjunto de funções (procedimentos) para efectuar pedidos sobre os dados, a fim de procurar, alterar, apagar entradas nos directórios.
Eis a lista das principais operações que o LDAP pode efectuar :
Operação Descrição
Abandon Abandona a operação previamente enviada ao servidor
Add Acrescenta uma entrada ao directório
Bind Inicia uma nova sessão no servidor LDAP
Compare Compara as entradas de um directório de acordo com critérios
Delete Suprime uma entrada de um directório
Extended Efectua operações vastas
Rename Altera o nome de uma entrada
Search Procura entradas num directório
Unbind Terminauma sessão no servidor LDAP
O formato de troca de dados LDIF
O LDAP fornece um formato de troca (LDIF, Lightweight Data Interchange Format) que permite importar e exportar os dados de um anuário com um simples ficheiro texto. A maioria dos servidores LDAP suporta este formato, que permite uma grande interoperabilidade entre eles.
A sintaxe deste formato é a seguinte:
[<id>] dn: <distinguished name> <attribut> : <valeur> <attribut> : <valeur> ...Neste ficheiro, id é facultativo, trata-se de um número inteiro positivo que permite identificar a entrada na base de dados.
<sample>
cada nova entrada deve ser separada da definição da entrada precedente com a ajuda de um salto de linha (linha vazia)
É possível definir um atributo para várias linhas, começando as linhas seguintes porum espaço ou uma tabulação
É possível definir vários valores que um atributo, repetindo a cadeia nome: valor em linhas separadas
quando o valor contém um carácter especial (não imprimível, um espaço ou : ), o atributo deve ser seguido de :: e depois do valor codificado em base64
O protocolo DHCP
Definição do termo DHCP
DHCP significa Dynamic Host Configuration Protocol. Trata-se de um protocolo que permite a um computador que se conecta a uma rede obter dinamicamente (quer dizer, sem intervenção específica) a sua configuração (principalmente, a sua configuração rede). Tem apenas de dizer ao computador para encontrar sozinho um endereço IP através do DHCP. O objectivo principal é a simplificação da administração de uma rede.
O protocolo DHCP serve principalmente para distribuir endereços IP numa rede, mas foi concebido à partida como complemento do protocolo BOOTP (Bootstrap Protocol) que é utilizado, por exemplo, quando se instala uma máquina através de uma rede (BOOTP é utilizado em estreita colaboração com um servidor TFTP no qual o cliente vai encontrar os ficheiros a carregar e copiar para o disco duro). Um servidor DHCP pode reenviar parâmetros BOOTP ou de configuração próprios a um dado hóspede.
Funcionamento do protocolo DHCP
É necessário inicialmente um servidor DHCP que distribui endereços IP. Esta máquina vai servir de base para todos os pedidos DHCP, e deve ter um endereço IP fixo. Numa rede, pode-se por conseguinte ter só uma máquina com endereço IP fixo, o servidor DHCP.
O mecanismo básico da comunicação é BOOTP (com trama UDP). Quando uma máquina arranca, não tem nenhuma informação sobre a sua configuração de rede e, sobretudo, o utilizador não deve fazer nada de especial para encontrar um endereço IP. Para fazer isto, a técnica utilizada é o broadcast: para encontrar e dialogar com um servidor DHCP, a máquina vai simplesmente emitir um pacote especial de broadcast (broadcast sobre 255.255.255.255 com outras informações como o tipo de pedido, as portas de conexão…) na rede local. Quando o servidor DHCP receber o pacote de broadcast, devolverá outro pacote de broadcast (não se esqueça que o cliente não tem necessariamente o seu endereço IP e que, por isso, não está directamente contactável) que contém todas as informações requeridas para o cliente.
Poder-se-ia pensar que um só um pacote pode ser suficiente para o bom funcionamento do protocolo. Com efeito, existem vários tipos de pacotes DHCP susceptíveis de serem emitido quer pelo cliente para os servidores, quer pelo servidor para um cliente:
DHCPDISCOVER (para localizar os servidores DHCP disponíveis) DHCPOFFER (resposta do servidor um pacote DHCPDISCOVER, que contém os primeiros
parâmetros) DHCPREQUEST (pedido diverso do cliente para por exemplo prolongar o seu arrendamento) DHCPACK (resposta do servidor que contém parâmetros e o endereço IP do cliente) DHCPNAK (resposta do servidor para informar o cliente que o seu arrendamento acabou ou se
o cliente apresenta uma má configuração de rede) DHCPDECLINE (o cliente anuncia ao servidor que o endereço já é utilizado) DHCPRELEASE (o cliente libera o seu endereço IP) DHCPINFORM (o cliente pede os parâmetros locais, tem já o seu endereço IP)
O primeiro pacote emitido pelo cliente é um pacote de tipo DHCPDISCOVER. O servidor responde por um pacote DHCPOFFER, em especial para apresentar um endereço IP ao cliente. O cliente estabelece a sua configuração, seguidamente faz um DHCPREQUEST para validar o seu endereço IP (pedido em broadcast porque DHCPOFFER não contém o seu endereço IP). O servidor responde simplesmente por um DHCPACK com o endereço IP para confirmação da atribuição. Normalmente, isto é suficiente para que um cliente obtenha uma configuração de rede eficaz, mas pode ser mais ou menos longo conforme o cliente aceite ou não o endereço IP…
As concessões
Por motivos de optimização dos recursos rede, os endereços IP são emitidos com uma data de início e uma data de fim de validade. É o que se chama de “concessão”. Um cliente que vê a sua concessão chegar a termo pode pedir ao servidor um prolongamento, com um DHCPREQUEST. Do mesmo modo, quando o servidor vir uma concessão chegar a termo, emitirá um pacote DHCPNAK para perguntar ao cliente se o quer prolongar. Se o servidor não receber resposta válida, torna disponível o endereço IP.
É esta a subtileza do DHCP: pode-se optimizar a atribuição dos endereços IP jogando com a duração das concessões. O problema está aí: se nenhum endereço for libertado ao fim de um certo tempo, mais nenhum pedido DHCP não poderá ser satisfeiao, por falta de endereços a distribuir.
Numa rede constituída maioritariamente por máquinas fixas, muito raramente repartidas, concessões de longa duração são suficientes. Não esqueça que o DHCP funciona principalmente por broadcast, e que isto pode bloquear banda concorrida em pequenas redes muito solicitadas.
Obter um servidor DHCP
É a Internet Software Consortium que desenvolve o servidor DHCP do mundo do software livre. É o servidor DHCP mais utilizado, e o que “segue” o melhor possível os RFCs. ATENÇÃO! Um servidor DHCP não é nada simples de desenvolver, e os servidores que propõem são completados regularmente. A última versão em data é a 3.0 mas está ainda em beta. Uma das principais inovações desta versão é a possibilidade de actualizar um DNS dinamicamente, em função dos endereços IP fornecidos pelo servidor DHCP. Para informação, o primeiro draft sobre o DNS dinâmico data de Março de 1996… Mais informações sobre a actualização de DNS por servidores DHCP.
A Microsoft tem naturalmente o seu próprio servidor DHCP para NT, mas este ainda não aplica a actualização dinâmica de DNS.
O protocolo SNMP
Definição do termo SNMP
SNMP significa Simple Network Management Protocol (que se pode traduzir por "protocolo simples de gestão de rede"). Trata-se de um protocolo que permite aos administradores rede gerir os equipamentos da rede e diagnosticar os seus problemas.
Princípio de funcionamento do protocolo SNMP
O sistema de gestão de rede baseia-se em dois elementos principais: um supervisor e agentes. O supervisor é a consola que permite ao administrador rede executar pedidos de gestão. Os agentes são entidades que se encontram a nível de cada interface que liga o equipamento gerido à rede e que permite recuperar informações sobre diferentes objectos.
Switchs, hubs, routers e servidores são exemplos de equipamentos que contêm objectos que podem ser geridos. Estes objectos podem ser informações materiais, parâmetros de configuração, estatísticas de desempenho e outros objectos que estão directamente ligados ao comportamento corrente do equipamento em questão. Estes objectos estão classificados numa espécie de base de dado chamada MIB (“Management Information Base"). O SNMP permite o diálogo entre o supervisor e os agentes a fim de recolher os objectos desejados no MIB.
A arquitectura de gestão da rede proposta pelo protocolo SNMP baseia-se por conseguinte em três principais elementos :
Os equipamentos geridos (managed devices) são elementos da rede (pontes, hubs, routers ou servidores), contendo “objectos geridos” (managed objects) que podem ser informações sobre o material, elementos de configuração ou informações estatísticas;
Os agentes, isto é, uma aplicação de gestão de rede que reside num periférico e encarregue de transmitir os dados locais de gestão do periférico em formato SNMP;
Os sistemas de gestão de rede network management systems notados NMS), ou seja, uma consola através da qual os administradores podem realizar tarefas de administração.
Os protocolos RTP/RTCP
Documento escrito por Nico VanHaute, Julien Barascud e Jean-Roland Conca
Introdução: O que é o RTP e o RTCP?
A difusão dos computadores, associada à disponibilidade de material informático audio/vídeo barato, bem como à disponibilidade de ligações com débito mais elevado, fez emergir o interesse de utilizar a rede Internet para enviar áudio e vídeo, tipos de dados que estavam tradicionalmente reservados para as redes especializadas para esse efeito, e já há alguns anos, o áudio e a videoconferência tornaram-se uma prática corrente. Mas a própria natureza da Internet, que faz com que esta rede não seja adaptada para a transmissão dos dados em tempo real, tem como consequência que a qualidade do áudio enviado através da Internet tenha em média uma qualidade medíocre. Esta tese dirige-se precisamente à análise e solução destes problemas para permitir a uma aplicação de audioconferência ou telefone na Internet adaptar o seu comportamento para manter uma qualidade auditiva aceitável mesmo em casos em que a rede esteja bastante congestionada. Estas soluções, sob a forma de mecanismos de controlo, foram aplicadas e testadas no software de audioconferência e telefone na Internet Free Phone que desenvolvemos. Um estudo sobre o comportamento que teriam estes mecanismos numa Internet que evoluía para integrar a disciplina de serviço Fair Queueing mostrou que estes mecanismos, que seriam ainda necessários, teriam mesmo um melhor desempenho neste tipo de rede.
RTP (Real-time Transfert Protocolo)
O objectivo do RTP é fornecer um meio uniforme para transmitir em IP dados sujeitos a constrangimentos de tempo real (áudio, vídeos,…). O papel principal do RTP consiste em aplicar números de sequência de pacotes IP para reconstituir as informações de voz ou de vídeo, ainda que a rede subjacente altere a ordem dos pacotes.
O RTP permite:
identificar o tipo de informação transportada, acrescentar indicadores temporais e números de sequência à informação transportada controlar a chegada ao destino dos pacotes.
Além disso, o RTP pode ser veiculado por pacotes multicast para encaminhar conversas para destinatários múltiplos.
RTCP (Real-time Transfert Control Protocol)
O protocolo RTCP baseia-se em transmissões periódicas de pacotes de controlo por todos os participantes da sessão.
É um protocolo de controlo dos fluxos RTP, permitindo veicular informações básicas sobre os participantes de uma sessão, e sobre a qualidade de serviço.
Utilização prevista do RTP e do RTCP
O RTP permite uma gestão dos fluxos multimédia (voz, vídeo) em IP. O RTP funciona em UDP. O cabeçalho RTP comporta informações de sincronização, de numeração. A codificação dos dados dependerá do tipo de compressão. O RFCxxxx especifica RTP, em contrapartida a adaptação de um método de compressão ao RTP será descrita num RFC específico, por exemplo H261 em RTP é descrito no RFCxxxx. Um canal RTP é empregado por tipo de fluxo: um para o áudio, um para o vídeo. O campo xxx é empregado para a sincronização. O RTP oferece um serviço de extremo a extremo. Acrescenta um cabeçalho que fornece as informações de timing necessárias para a sincronização de fluxos tempo real do tipo som e vídeo. O RTP (Realtime Transport Protocol) e o seu companheiro RTCP (Realtime Transport Control Protocol) permitem respectivamente transportar e controlar ondas de dados que têm propriedades "tempo-real". O RTP e o RTCP são protocolos que se situam a nível da aplicação e utilizam os protocolos subjacentes de transporte TCP ou UDP. Mas a utilização de RTP/RTCP faz-se geralmente acima o UDP. O RTP e o RTCP podem utilizar o modo Unicast (ponto a ponto) assim como o modo Multicast (multiponto). Cada um deles utiliza uma porta separada de um par de portas. O RTP utiliza a porta par e o RTCP a porta ímpar imediatamente superior.
Formato dos cabeçalhos e os seus conteúdos
O cabeçalho RTP comportará as seguintes informações:
<--------------------------- 32 bits --------------------------->
V=2 P X CC M Sequence number
Timestamp
Identificador da fonte de sincronização (SSRC)
Identificadores da fonte de contribuição (CSRC)
Eis o significado dos diferentes campos do cabeçalho:
O campo Versão V de 2 bits de comprimento indica a versão do protocolo (V=2) O campo padding P : 1 bit, se P for igual a 1, o pacote contém bytes adicionais de enchimento
(padding) para terminar o último pacote. O campo extensão X : 1 bit, se X=1 o cabeçalho é seguido de um pacote de extensão O campo CSRC count CC : 4 bits, contém o número de CSRC que acompanham o cabeçalho O campo marker M : 1 bit, a sua interpretação é definidas por um perfil de aplicação (profile) O campo payload type PT : 7 bits, este campo identifica o tipo de payload (áudio, vídeo,
imagem, texto, HTML, etc.)
O campo sequence number : 16 bits, o seu valor inicial é aleatório e incrementa-se de 1 por cada pacote enviado, pode servir para detectar pacotes perdidos
O campo timestamp : 32 bits, reflecte o momento em que o primeiro byte do pacote RTP foi amostrado. Este momento deve ser derivado de um relógio que avança de maneira monótona e linear no tempo, para permitir a sincronização e o cálculo ao destino
O campo SSRC : 32 bits, identifica de maneira única a fonte, o seu valor é escolhido de forma aleatória pela aplicação. O campo SSRC identifica a fonte de sincronização (ou simplesmente “a fonte”). Este identificador é escolhido de maneira aleatória para que seja único entre todas as fontes de uma mesma sessão. A lista dos CSRC identifica as fontes (SSRC) que contribuíram para a obtenção dos dados contidos no pacote que contém estes identificadores. O número de identificadores é dado no campo CC
O campo CSRC : 32 bits, identifica as fontes que contribuem.
O cabeçalho RTCP
O objectivo do RTCP é fornecer diferentes tipos de informações e um feedback quanto à qualidade de recepção.
O cabeçalho RTCP comportará as seguintes informações:
O campo versão (2 bits) O campo padding (1 bits) indica que há enchimento cuja dimensão é indicada no último byte O campo recepção report count (5 bits): números de relatórios no pacote O campo packet tipo (8 bits) 200 para SR O campo length (16 bits) comprimento do pacote em palavras de 32 bits O campo SSRC (32 bits) :identificação da fonte específica ao emissor O campo NTP timestamp (64 bits) O campo RTP timestamp (32 bits) O campo sender' s packet count (32 bits) O campo sender' s byte count (32 bits) estatísticas O campo SSRC-n (32 bits) número da fonte cujo fluxo é analisado O campo fraction lost (8 bits) O campo cumulative number of packets lost (24 bits) O campo extended highest sequence number received (32 bits) O campo interarrival jitter (32 bits). É uma estimativa do intervalo de tempos de um pacote de
dados RTP que é medido com o timestamp e que está sob a forma de um número inteiro. É, com efeito, o tempo relativo de trânsito entre dois pacotes de dados.
A fórmula para calculá-lo é: J=J+ (|D (i-1, i)|- J) /16 O interarrival jitter é calculado a cada pacote de dados recebido pela fonte SSRC_n i --> Primeiro pacote i-1 --> pacote precedente D --> diferença J --> Segundo pacote
O campo last SR timestamp (32 bits) O campo delay since last SR (32 bits)
Como é utilizado o RTCP no que diz respeito ao RTP ?
O RTCP é um protocolo de controlo associado ao RTP e mede os desempenhos; em contrapartida não oferece garantias. Por isso é necessário empregar um protocolo de reserva do tipo RSVP ou assegurar-se que as relações de comunicações utilizadas são dimensionadas correctamente em relação à utilização que é feita.
A partir de que protocolos funcionam o RTP e o RTCP
O RTP/RTCP está acima do transporte UDP/TCP, mas praticamente acima UDP. O RTP é um protocolo de sessão, mas está colocado na aplicação. Cabe ao programador integrá-lo.
Como é o tipo de fluxo veiculado?
O RTP não tem nada a ver com o tipo de fluxo, está acima do UDP, e este acima do IP. O tipo de fluxo é teoricamente utilizado em IP. O RTP traz um número de sequência, um timestamp e um identificador único da fonte (SSRC).
O protocolo IPv6
Documento escrito por Nico VanHaute
Historial do protocolo IP
Os dias do protocolo IP na sua forma actual (IPv4) estão contados. A rede Internet era utilizada largamente pelas universidades, as indústrias de alta tecnologia, e o governo a partir de meados dos anos 90, mas a Internet interessa cada vez mais as empresas e as sociedades comerciais - será utilizada por um grande número de indivíduos e sistemas que exprimem uns e outros necessidades diferentes. Por exemplo: com a convergência iminente do computador, das redes, do audiovisual e da indústria dos lazeres, cada posto de televisão tornar-se-á dentro de pouco tempo um equipamento de acesso à Internet que permite a mil milhões de indivíduos praticar, por exemplo, vídeo on demande, televendas ou comércio electrónico. Nestas circunstâncias, o protocolo IPv6 (chamado igualmente IPng para IP new geração) deve oferecer mais flexibilidade e eficácia, resolver qualquer variedade de problemas novos e não deveria nunca entrar em ruptura de endereços.
Os objectivos principais deste novo protocolo foram:
Suportar mil milhões de computadores, libertando-se da ineficácia do espaço dos endereços IP actuais,
Reduzir a dimensão das tabelas de encaminhamento, Fornecer uma melhor segurança (autenticação e confidencialidade) que o actual protocolo IP, Atribuir mais atenção ao tipo de serviço, e nomeadamente aos serviços associados ao tráfego
em tempo real, Facilitar a divulgação multi-destinatários permitindo especificar a envergadura, Dar a possibilidade a um computador de se deslocar sem estar a alterar o seu endereço, Permitir ao protocolo uma evolução futura, Atribuir ao antigo e ao novo protocolo uma coexistência pacífica.
O protocolo IPv6
O protocolo IPv6 responde razoavelmente aos objectivos estabelecidos. Mantém as melhores funções de IPv4, afasta ou minimiza as más, e acrescenta novas quando são necessárias.
Em geral, o IPv6 não é compatível com o IPv4, mas é compatível com todos os outros protocolos Internet, como TCP, UDP, ICMP, IGMP, OSPF, BGP e DNS; às vezes, ligeiras modificações são necessárias (nomeadamente para funcionar com longos endereços).
As principais funções de IPv6
A novidade essencial de IPv6 é a utilização de endereços mais longos que o IPv4. São codificadas em 16 bytes e permitem resolver o problema que pôs o IPv6 na ordem do dia: oferecer um conjunto de endereços Internet quase ilimitado.
O IPv4 permite dirigir 2^32=4,29.10^9 endereços enquanto o IPv6 permite dirigir 2^128=3,4.10^38 endereços.
A melhoria essencial de IPv6 é a simplificação da rubrica dos datagramas. A rubrica do datagrama básico IPv6 compreende apenas 7 campos (contra 14 para o IPv4). Esta mudança permite aos switchs tratar mais rapidamente os datagramas e melhora globalmente o seu débito.
A terceira melhoria consiste em oferecer mais flexibilidade às opções. Esta mudança é essencial com a nova rubrica, porque os campos obrigatórios da antiga versão são agora opcionais. Além disso, a forma como as opções são representadas é diferente; permite às switchs ignorar mais simplesmente as opções que não lhes são destinadas. Esta função acelera o tempo de tratamento dos datagramas.
Por outro lado, o IPv6 confere uam maior segurança : A autenticação e a confidencialidade constituem as funções de segurança essenciais do protocolo IPv6.
Finalmente, foi atribuída mais atenção do que no passado aos tipos de serviços. Embora o campo Tipo de serviço do datagrama IPv4 apenas seja utilizado muito raramente, o crescimento esperado do tráfego multimédia no futuro precisa de lhe prestar atenção.
Rubrica básica dos datagramas
Eis o aspecto aproximado de um datagrama IPv6:
<--------------------------- 32 bits --------------------------->
Versão Classe de tráfego Identificador de fluxos
Comprimento dos dados <td width="120">Rubrica seguinte<td width="120"> Número de saltos
<td width="480">Endereço IP fonte
<td width="480">Endereço IP destino
<td width="480">Dados
Eis o significado dos diferentes campos :
O campo Versão é sempre igual a 4 bits no IPv6. Durante o período de transição doIPv4 para o IPv6, os switchs deverão examinar este campo para saber que tipo de datagrama eles encaminham.
O campo Classe de tráfego (codificado das 8 bits) é utilizado para distinguir as fontes que devem beneficiar do controlo de fluxos dos outro. Prioridades de 0 a 7 são afectadas às fontes capazes de retardar o seu débito em caso de congestão. Os valores 8 a 15 são atribuídos ao tráfego em tempo real (os dados áudio e vídeo fazem parte deste grupo), cujo débito é constante.
Esta distinção dos fluxos permite às switchs reagir melhor em caso de congestão. Em cada grupo prioritário, o nível de prioridade mais fraco corresponde aos datagramas menos importantes.
O campo Identificador de fluxos contém um número único escolhido pela fonte que tem por objectivo facilitar o trabalho dos switchs e permitir a aplicação das funções de qualidade de serviços como RSVP (Resource reSerVation setup Protocol). Este indicador pode ser considerado como uma marca para um contexto em switch. O switch pode então fazer um tratamento específico: escolha de uma estrada, tratamento em tempo real da informação,…
O campo identificador de fluxos pode ser preenchido com um valor aleatório que servirá para referenciar o contexto. A fonte guardará este valor para todos os pacotes que emitirá para esta aplicação e este destino. O tratamento é optimizado dado que os switch só tem que consultar cinco campos para determinar a pertença de um pacote. Além disso, se uma extensão de confidencialidade for utilizada, as informações relativas aos números de porta são mascaradas para os switchs intermédios.
O campo Comprimento dos dados úteis (em inglês payload) sobre dois bytes, contém apenas a dimensão dos dados úteis, sem ter em conta o comprimento da rubrica. Para pacotes cuja dimensão dos dados seria superior a 65536, este campo vale 0 e a opção "jumbograma" da extensão “de parentes em parente” é utilizada.
O campo Rubrica seguinte tem uma função similar ao campo protocolo do pacote IPv4 : Identifica simplesmente a próxima rubrica (no mesmo datagrama IPv6). Pode tratar-se de um protocolo (de nível superior ICMP, UDP, TCP,…) ou de uma extensão.
O campo Número de saltos substitui o campo “TTL” (Time-to-Live) no IPv4. O seu valor (em 8 bits) é subtraído a cada nó atravessado. Se este valor atingir 0 enquanto que o pacote IPv6 atravessa o switch, será rejeitado com a emissão de uma mensagem ICMPv6 de erro. É utilizado para impedir os datagramas de circular indefinidamente. Desempenha o mesmo papel que o campo Duração de vida do IPv4, e contém um valor que representa o número de saltos ou passos (hops) que é subtraído a cada passagem em switch. Em teoria, no IPv4, há uma noção de tempos em segundos mas como nenhum switch o utiliza como tal, o nome foi alterado para reflectir o uso actual.
Vêm seguidamente os campos Endereço fonte e Endereço de destino.
Após numerosas discussões, decidiu-se que os endereços de comprimento fixo iguais a 16 bytes constituiam um melhor compromisso. Os primeiros bits do endereço - o prefixo - definem o tipo de endereço. Os endereços que começam por 8 zeros estão reservados para os endereços IPv4. Duas alternativas são suportadas; distinguem-se de acordo com os 16 bits seguintes ( 16 bits a 0 ou a 1).
Identificação geográfica graças aos prefixos
A utilização de prefixos separados para os endereços afectados a um fornecedor e os endereços afectados a uma zona geográfica constitui um compromisso entre duas diferentes visões da futura rede Internet. Cada um destes fornecedores dispõe de uma fracção reservada do espaço de endereçamento (1/8 deste espaço). Os 5 primeiros bits que seguem o prefixo 010 são utilizados para indicar em que “registo” se encontra o fornecedor de acesso. Actualmente, três registos estão operacionais, para a América do Norte, a Europa e a Ásia. Até 29 novos registos poderão ser acrescentados ulteriormente.
Cada registo é livre para dividir os 15 bytes restantes como bem o entender. Uma outra possibilidade é utilizar um byte para indicar a nacionalidade do fornecedor e deixar aos bytes total liberdade para definir uma estrutura de endereços específica.
O modelo geográfico é o mesmo que o da rede Internet actual, na qual os fornecedores de acesso não desempenham um grande papel. Neste quadro, Io Pv6 pode gerir 2 tipos de endereços.
Os endereços Unicast Locales (ULA) utilizam o prefixo FC00::/7, destinam-se ao equivalente dos endereços ip privados IPV4 (RFC1918) . Os endereços de relações e de sites locais têm apenas uma especificação local. Podem ser reutilizados por outras organizações sem que haja conflito. Não podem ser propagados fora dos limites das organizações, o que os torna bem adaptados às que utilizam guardas-barreira para proteger a sua rede privada da rede Internet.
Endereço broadcast
Os endereços de divulgação multidestinatário dispõem de um campo Bandeira (4 bits) e de um campo Envergadura (4 bits) na sequência do prefixo, seguidamente de um campo Identificador de grupo (112 bits). Um dos bits da bandeira distingue os grupos permanentes dos grupos transitórios. O campo Envergadura permite uma divulgação limitada numa zona
Endereço anycast
Além de suportar o endereçamento ponto a ponto clássico (unicast) e o endereçamento de divulgação multidestinatário (multicast), o IPv6 suporta um novo tipo de endereçamento de divulgação (anycast).
Esta técnica é semelhamte à difusão multidestinatário no sentido em que o endereço de destino é um grupo de endereços mas, em vez de enviar o datagrama a todos os membros do grupo, tenta enviá-lo apenas a um membro do grupo, o mais próximo.
A notação IPv6
Uma nova notação foi definida para descrever os endereços IPv6 de 16 bytes. Compreende 8 grupos de 4 números hexadecimais separados com o símbolo dois-pontos. Por exemplo:
8000:0000:0000:0000:0123:4567:89AB:CDEF
Dado que vários endereços têm numerosos zeros na sua minuta, 3 optimizações foram definidas. Em primeiro lugar, os 1° zero de um grupo podem ser omitidos, como por exemplo 0123 que pode escrever-se 123. Seguidamente, um ou vários grupos de 4 zeros consecutivos podem ser substituídos por um duplo dois-pontos. É assim que o endereço acima passa a ser :
8000::::123:4567:89AB:CDEF
Por último, os endereços IPv4 podem ser escritos utilizando a representação do endereço em notação decimal apontada, precedida de um duplo dois-pontos, como por exemplo:
::192.31.254.46
O campo Protocolo está excluído porque o campo Rubrica seguinte da última rubrica IP de um datagrama precisa o tipo de protocolo (por exemplo,UDP ou TCP).
Todos os campos relativos à fragmentação foram retirados, porque o IPv6 tem uma abordagem diferente da fragmentação. Para começar, todos os computadores e switchs conformes ao IPv6 devem suportar os datagramas de 576 bytes. Esta regra coloca a fragmentação num papel secundário. Além disso, quando um computador envia um datagrama IPv6 demasiado grande, contrariamente ao que se passa com a fragmentação, o switch que não pode transmiti-lo envia uma mensagem de erro à fonte. Esta mensagem diz ao computador fonte para interromper o envio de novos datagramas para este destino. Ter um computador que transmite imediatamente datagramas de boa dimensão é bem mais eficaz do que ver os switchs fragmentá-los.
Por último, o campo Total de controlo já não existe porque o seu cálculo é demasiado redutor de desempenho. Com efeito, a fiabilidade das redes actuais, combinada com o facto de que as camadas ligações de dados e transporte efectuam o seu próprio controlo, faz com que o ganho em qualidade de um total de controlo suplementar não valha o preço a pagar para o codificar.
Rubrica de extensão
Esta rubrica fornece uma informação complementar de maneira eficaz. Cada uma delas é opcional. Se mais de uma rubrica estiverem presentes, devem aparecer imediatamente após a rubrica fixa, preferivelmente na ordem da lista.
Certas rubricas têm um formato fixo; outras contêm um número variável de campos variáveis. Por isso, cada item é codificado sob a forma de um trio (Tipo, Comprimento, Valor). O Tipo é um campo de um byte que precisa a natureza da opção. Os diferentes tipos foram escolhidos de modo a que os 2 primeiros bits dissessem o que fazer aos switchs que não sabem executar a opção. As escolhas são:
saltar a opção destruir o datagrama devolver uma mensagem ICMP à fonte destruir o datagrama sem reenviar uma mensagem ICMP se se tratar de um datagrama
multidestinatário (a fim de evitar um número demasiado importante de relatório ICMP em regresso).
O Comprimento é um campo de um byte. Indica a dimensão do campo Valor (de 0.255) que contém uma informação qualquer dirigida ao destinatário.
Rubrica Passo a passo
A rubrica Passo a Passo contém informações destinadas a todos os switchs no caminho.
Rubrica Encaminhamento
A rubrica Encaminhamento dá a lista de um ou vários switchs que devem ser visitados no trajecto para o destino. Duas formas de encaminhamento são aplicadas de maneira combinada: o encaminhamento
estrito (a estrada integral é definida) e o encaminhamento impresciso (só os switchs obrigatórios são definidos).
Os 4 primeiros campos da rubrica de extensão Encaminhamento contêm 4 totalidades de um byte:
o tipo de rubrica seguinte o tipo de encaminhamento (habitualmente 0) o número de endereços presentes na rubrica (de 1 a 24) um endereço que dá o próximo endereço a visitar.
Este último campo começa com o valor 0, é incrementado a cada endereço visitado.
Rubrica fragmentação
A rubrica Fragmentação trata da fragmentação de maneira semelhante ao IPv4. A rubrica contém o identificador de datagrama, o número de fragmento e um bit que precisa se houver outros fragmentos a seguir. No IPv6, contrariamente ao IPv4, só o computador fonte pode fragmentar o datagrama. OS switchs no trajeto não o podem. Isto permite ao computador fonte fragmentar o datagrama em partes e utilizar a rubrica Fragmentação para as transmitir.
Autenticação
A rubrica Autenticação fornece um mecanismo que permite ao destinatário de um datagrama assegurar-se da identidade da fonte. No IPv4, nenhuma garantia semelhante é oferecida.
A utilização da codificação dos dados do datagrama (a sua carga útil) reforça a sua segurança; só o verdadeiro destinatário pode ler-o.
Quando um emissor e um receptor querem comunicar em total segurança, devem em primeiro lugar estar de acordo sobre uma ou várias chaves secretas conhecidas unicamente por eles. É atribuído um número chave de 32 bits a cada uma das 2 chaves.
Os números chave são globais de modo que, por exemplo, se A utilizar a chave 4 para comunicar com B, A não pode utilizar esta chave para comunicar com C. Outros parâmetros são associados a cada número chave, como a sua duração de vida, etc.…
Para enviar uma mensagem autenticada, o computador fonte cria primeiramente um datagrama que contém todas as rubricas IP e a carga útil, seguidamente substitui os campos que alteram pouco por zeros (por exemplo: o campo Número máximo de saltos). O datagrama é completado com zeros para ser um múltiplo de 16 bytes. De maneira similar, a chave secreta utilizada também é completada com zeros para ser um múltiplo de 16 bytes. Seguidamente, um total de controlo codificado é calculado após concatenação da chave secreta completa, o datagrama completo e, de novo, a chave secreta completa.
A rubrica Autenticação contém 3 partes. A primeira conta 4 bytes que precisam o número de rubrica seguinte, o comprimento da rubrica de autenticação, e 16 bits a zero. O segundo define o número chave em 32 bits. O terceiro contém o total de controlo codificado (com o algoritmo MD5 ou outro).
O destinatário utiliza o número chave para encontrar a chave secreta. O valor completo da chave secreta é acrescentado antes e após a carga útil própria completada, os campos variáveis da rubrica são esvaziados dos seus zeros, seguidamente o total de controlo codificado é calculado. Se o resultado do cálculo for igual ao total de controlo codificado contido na rubrica Autenticação, o destinatário tem a certeza de que o datagrama vem bem da fonte com a qual partilha a chave secreta. Tem igualmente a certeza de que o datagrama não foi falsificado às escondidas.
Para os datagramas que devem ser enviados secretamente, é necessário utilizar a rubrica de extensão Carga útil codificada. Esta rubrica começa por um número chave de 32 bits, seguido pela carga útil calculada.
Opção de destino
A rubrica Opção de destino é utilizada para campos que têm necessidade de ser interpretados e compreendidos apenas pelo computador destinatário. Na versão original de IPv6, a única opção de
destino que foi definida foi a opção nula. Permite completar esta rubrica com zeros para obter um múltiplo de 8 bytes. Esta rubrica não será utilizada inicialmente. Foi definida para garantir que os novos softwares de encaminhamento possam tê-la em conta, no caso de alguém um dia pensar em utilizar uma opção de destino.
NAT - Network Address Translation, porta e encaminhamento porta
Princípio do NAT
O mecanismo de tradução de endereços (em inglês Network Address Translation, notado NAT) foi criado para responder à escassez de endereços IP com o protocolo IPv4 (o protocolo IPv6 responderá a termo a este problema).
Com efeito, em endereçamento IPv4, o número de endereços IP rotáveis (e por conseguinte, únicos no planeta) não é suficiente para permitir as todas as máquinas que precisam de ser ligadas à Internet.
O princípio do NAT consiste então em utilizar uma ponte estreita de conexão à Internet, possuindo pelo menos um interface rede ligado à rede interna e pelo menos interface rede ligado à Internet (que possui um endereço IP rotável), para conectar o conjunto das máquinas da rede.
Trata-se de realizar, a nível da ponte estreita, uma translation (literalmente “uma tradução”) dos pacotes que provêm da rede interna para a rede externa.
Assim, cada máquina da rede que necessita de aceder à Internet é configurada para utilizar a ponte estreita NAT (precisando o endereço IP da ponte estreita no campo “Gateway” dos seus parâmetros TCP/IP). Quando uma máquina da rede efectua um pedido à internet, a ponte estreita efectua o pedido em seu lugar, recebe a resposta, e seguidamente transmite-a à máquina que fez o pedido.
Já que a ponte estreita camufla completamente o endereçamento interno de uma rede, o mecanismo de tradução de endereços permite assegurar uma função de segurança. Com efeito, para um observador externo à rede, todos os pedidos parecem provir do endereço IP da ponte estreita.
Espaços de endereçamento
O organismo que gere o espaço de endereçamento público (endereços IP rotáveis) é a Internet Assigned Number Authority (IANA). O RFC 1918 define um espaço de endereçamento privado que permite a qualquer organização atribuir endereços IP às máquinas da sua rede interna sem risco de entrar em conflito com um endereço IP público atribuído pelo IANA. Estes endereços ,ditos não-rotáveis, correspondem aos intervalos de endereços seguintes :
Classe A : intervalo de 10.0.0.0 a 10.255.255.255 ; Classe B : intervalo de 172.16.0.0 a 172.31.255.255 ; Classe C : intervalo de 192.168.0.0 a 192.168.255.55 ;
Todas as máquinas de uma rede interna, ligadas à Internet através de switch e que não possuem um endereço IP público devem utilizar um endereço contido num destes intervalos. Para as pequenas redes domésticas, a gama de endereços de 192.168.0.1 a 192.168.0.255 é geralmente utilizada.
Tradução estática
O princípio do NAT estático consiste em associar um endereço IP público a um endereço IP privado interno à rede. O switch (ou mais exactamente a ponte estreita) permite então associar a um endereço IP privado (por exemplo 192.168.0.1) um endereço IP público rotável na Internet e fazer a tradução, tanto num sentido como no outro, alterando o endereço no pacote IP.
A tradução de endereço estática permite assim conectar máquinas da rede interna à Internet de maneira transparente, mas não resolve o problema da escassez de endereços, na medida em que n endereços IP rotáveis são necessários para conetar n máquinas da rede interna.
Tradução dinâmica
O NAT dinâmico permite partilhar um endereço IP rotável (ou um número reduzido de endereços IP rotáveis) entre várias máquinas em endereçamento privado. Assim, todas as máquinas da rede interna possuem virtualmente, vistas do exterior, o mesmo endereço IP. É a razão pela qual o termo de “máscara IP” (em inglês IP masquerading) é às vezes utilizado para designar o mecanismo de tradução de endereço dinâmico. Para poder “multiplicar” (partilhar) os diferentes endereços IP sobre um ou vários endereços IP rotáveis, o NAT dinâmico utiliza o mecanismo de tradução de porta (PAT - Port Address Translation), quer dizer, a afectação de uma porta fonte diferente a cada pedido, de maneira a poder manter uma correspondência entre os pedidos que provêm da rede interna e as respostas das máquinas na Internet, todas dirigidas ao endereço IP switch.
Port Forwarding
A tradução de endereço só permite retransmitir pedidos que provêm da rede interna para a rede externa, o que significa que é impossível, para uma máquina externa, enviar um pacote para uma máquina da rede interna. Noutros termos, as máquinas da rede interna não podem funcionar como servidor no que diz respeito ao exterior.
Por esta razão, existe uma extensão do NAT chamada “redirecionamento de porta” (em inglês Port Forwarding ou Port mapping) que consiste em configurar a ponte estreita para transmitir a uma máquina específica da rede interna, todos os pacotes recebidos numa porta específica. Assim, se se desejar poder aceder do exterior a um servidor web (porta 80) que funciona na máquina 192.168.1.2, será necessário definir uma regra de redireccionamento de porta para a ponte estreita, redirigindo todos os pacotes TCP recebidos na sua porta 80 para a máquina 192.168.1.2.
Port Triggering
A maior parte das aplicações cliente-servidor efectua um pedido a um hóspede distante numa porta dada e abre um porta em regresso para recuperar os dados. No entanto, certas aplicações utilizam mais de uma porta para trocar dados com o servidor, é o caso por exemplo do FTP, pelo qual uma conexão é estabelecida pela porto 21, mas os dados são transferidos pela porta 20. Assim, com o mecanismo NAT, após um pedido de conexão à porta 21 de um servidor FTP distante, a ponte estreita espera uma conexão numa só porta e recusará o pedido de conexão à porta 20 do cliente.
Existe um mecanismo derivado do NAT, chamado “desencadeamento de porto” (em inglês port triggering), permitindo autorizar a conexão a certos portos (port forwarding) se uma condição (pedido) for preenchida. Trata-se por conseguinte de um redireccionamento de porta condicional, permitindo não deixar aberta uma porta permanentemente, mas unicamente quando uma aplicação tem necessidade.
VLAN - Redes virtuais
Introdução às VLAN
Uma VLAN (Virtual Local Area Network ou Virtual LAN, em português Rede Local Virtual) é uma rede local que agrupa um conjunto de máquinas de maneira lógica e não física.
Com efeito, numa rede local a comunicação entre as diferentes máquinas é governada pela arquitectura física. Graças às redes virtuais (VLANs) é possível livrar-se das limitações da arquitectura física (constrangimentos geográficos, restrições de endereçamento,…) definindo uma segmentação lógica (software) baseada num agrupamento de máquinas graças a critérios (endereços MAC, números de porta, protocolo, etc.).
Tipologia de VLAN
Foram definidos vários tipos de VLAN, de acordo com o critério de comutação e o nível em que se efectua:
Uma VLAN de nível 1 (também chamada VLAN por porta, em inglês Port-Based VLAN) define uma rede virtual em função das portas de conexão no comutador;
Uma VLAN de nível 2 (igualmente chamada VLAN MAC, em inglês MAC Address-Based VLAN) consiste em definir uma rede virtual em função dos endereços MAC das estações. Este tipo de VLAN é muito mais flexível que a VLAN por porta, porque a rede é independente da localização da estação;
Uma VLAN de nível 3: distinguem-se vários tipos de VLAN de nível 3 : o A VLAN por subrede (em inglês Network Address-Based VLAN) associa subredes de
acordo com o endereço IP fonte dos datagramas. Este tipo de solução confere uma grande flexibilidade, na medida em que a configuração dos comutadores se altera automaticamente no caso de deslocação de uma estação. Por outro lado, uma ligeira degradação de desempenhos pode fazer-se sentir, dado que as informações contidas nos pacotes devem ser analisadas mais finamente.
O VLAN por protocolo (em inglês Protocol-Based VLAN) permite criar uma rede virtual por tipo de protocolo (por exemplo TCP/IP, IPX, AppleTalk, etc.), agrupando assim todas as máquinas que utilizam o mesmo protocolo numa mesma rede.
As vantagens do VLAN
A VLAN permite definir uma nova rede acima da rede física e a esse respeito oferece as seguintes vantagens:
Mais flexibilidade para a administração e as modificações da rede porque qualquer arquitectura pode ser alterada por simples parametrização dos comutadores
Ganho em segurança, porque as informações são encapsuladas num nível suplementar e são eventualmente analisadas
Redução da divulgação do tráfego sobre a rede
Mais informações
As VLAN são definidas pelos padrões IEEE 802.1D, 802.1p, 802.1Q e 802.10. Para mais informações, é aconselhável consultar os documentos seguintes :
IEEE 802.1D IEEE 802.1Q IEEE 802.10
Os protocolos de serviço de mensagens (SMTP, POP3 e IMAP4)
Introdução ao serviço de mensagens electrónicas
O correio electrónico é considerado o serviço mais utilizado na Internet. Assim, a sequência de protocolos TCP/IP oferece uma panóplia de protocolos que permitem gerir facilmente o encaminhamento do correio na rede.
O protocolo SMTP
O protocolo SMTP (Simple Mail Transfer Protocol, que se pode traduzir por Protocolo Simples de Transferência de Correio) é o protocolo standard que permite transferir o correio de um servidor a outro em conexão ponto a ponto.
Trata-se de um protocolo que funciona em modo conectado, encapsulado numa trama TCP/IP. O correio é entregue directamente ao servidor de correio do destinatário. O protocolo SMTP funciona graças a comandos textuais enviados ao servidor SMTP (por defeito, para a porta 25). Cada um dos comandos enviados pelo cliente (validados pela cadeia de caracteres ASCII CR/LF, equivalente a um clique na tecla ENTER) é seguido de uma resposta do servidor SMTP composta de um número e de uma mensagem descritiva.
Eis um cenário de pedido de envio de mail a um servidor SMTP
Aquando da abertura da sessão SMTP, o primeiro comando a enviar é o comando HELO seguido de um espaço (notado <SP>) e o nome de domínio da sua máquina (para lhe dizer “bom dia, sou a máquina tal”), seguidamente validar por entrada (notado <CRLF>). Desde Abril de 2001, as especificações do protocolo SMTP, definidas no RFC 2821, impõem que o comando HELO seja substituído pelo comando EHLO.
O segundo comando é “MAIL FROM” seguido do endereço de correio electrónico do remetente. Se o comando for aceite, o servidor devolve a mensagem “250 OK”
O comando seguinte é “RCPT TO: ” seguido do endereço de correio electrónico do destinatário. Se o comando for aceite, o servidor devolve a mensagem “250 OK”
AO comando DATA é a terceira etapa do envio. Anuncia o início do corpo da mensagem. Se o comando for aceite, o servidor reencia uma mensagem intermédia numerada 354, que indica que o envio do corpo do mail pode começar e considera o conjunto das linhas seguintes até ao fim da mensagem localizada por uma linha que contém unicamente um ponto. O corpo do mail contém eventualmente alguns dos cabeçalhos seguinte:
o Date o Subject o Cc o Bcc o From
Se o comando for aceite, o servidor devolve a mensagem "250 OK" Eis um exemplo de transacção entre um cliente (C) e um servidor SMTP (S) S: 220 smtp.kioskea.net SMTP Ready C: EHLO machine1.kioskea.net S: 250 smtp.kioskea.net C: MAIL FROM:<webmaster@kioskea.net>
S: 250 OK C: RCPT TO:<meandus@meandus.net>
S: 250 OK C: RCPT TO:<tittom@tittom.fr>
S: 550 No such user here C: DATA
S: 354 Start mail input; end with <CRLF>.<CRLF>
C: Subject: Petit Bonjour C: Salut Meandus, C: comment ca va? C : C: A bientot ! C: <CRLF>.<CRLF>
S: 250 OK C: QUIT R: 221 smtp.kioskea.net closing transmission
As especificações de base do protocolo SMTP exigem que todos os caracteres transmitidos sejam codificados em código ASCII de 7 bits 7 e que o oitavo bit esteja explicitamente a zero. Assim, para enviar caracteres acentuados, é necessário recorrer a algoritmos que integrem as especificações MIMO :
base64 para os anexos quoted-printable (de abbréviation QP) para os caracteres especiais contidos no corpo da
mensagem
É assim possível enviar um correio graças a um simples Telnet na porta 25 do servidor SMTP :
telnet smtp.kioskea.net 25
(o servidor indicado acima é inexistente de propósito, pode tentar substituindo kioskea.net pelo domínio do seu fornecedor de acesso à Internet)
Eis um sumário dos principais comandos SMTP
Comando Exemplo Descrição
HELO (doravanteEHLO)
EHLO 193.56.47.125Identificação com a ajuda do endereço IP ou do nome de domínio do computador remetente
MAIL FROM:MAIL FROM: expediteur@domaine.com
Identificação do endereço do remetente
RCPT TO:RCPT TO: destinataire@domaine.com
Identificação do endereço do destinatário
DATA DATA message Corpo do mail
QUIT QUIT Saída do servidor SMTP
HELP HELPLista dos comandos SMTP suportados pelo servidor
O conjunto das especificações do protocolo SMTP está definido no RFC 821 (desde Abril de 2001, as especificações do protocolo SMTP estão definidas no RFC 2821).
O protocolo POP3
O protocolo POP (Post Office Protocol , que se pode traduzir por “protocolo de posto dos correios”) permite, como o seu nome o indica, recuperar o seu correio num servidor distante (o servidor POP). É necessário para as pessoas não ligadas permanentemente à Internet, para poderem consultar os mails recebidos offline.
Existem duas versões principais deste protocolo, o POP2 e o POP3, aos quais são atribuídas respectivamente as portas 109 e 110, funcionando com o auxílio de comandos textuais radicalmente diferentes.
Tal como no caso do protocolo SMTP, o protocolo POP (POP2 e POP3) funciona graças a comandos textuais enviados ao servidor POP. Cada um dos comandos enviados pelo cliente (validado pela sequência CR/LF) é composto por uma palavra-chave, eventualmente acompanhada de um ou vários argumentos, e seguida de uma resposta do servidor POP, composta por um número e por uma mensagem descritiva.
Eis um quadro que recapitula os principais comandos POP2 :
Comandos POP2
CommandeDescrição
HELLO Identificação através do endereço IP do computador remetente
FOLDER Nome da caixa a consultar
READ Número da mensagem a ler
RETRIEVE Número da mensagem a recuperar
SAVE Número da mensagem a salvaguardar
DELETE Número da mensagem a suprimir
QUIT Saída do servidor POP2
Eis um sumário dos comandos POP3 :
EComandos POP3
CommandeDescrição
USER identifiantEste comando permite a autenticação. Deve ser seguido do nome do utilizador, quer dizer, uma cadeia de caracteres que identificam o utilizador no servidor. O comando USER deve preceder o comando PASS.
PASS mot_de_passe
O comando PASS, permite indicar a palavra-passe do utilizador, cujo nome foi especificado aquando de um comando USER prévio.
STAT Informação sobre as mensagens contidas no servidor
RETR Número da mensagem a recuperar
DELE Número da mensagem a suprimir
LIST [msg] Número da mensagem a afixar
NOOP Permite deixar a ligação aberta no caso de inactividade
TOP <messageID> <n>
Comando que afixa n linhas da mensagem, cujo número é dado em argumento. No caso de resposta positiva do servidor, este devolve os cabeçalhos da mensagem, seguidamente uma linha virgem e por último as n primeiras linhas da mensagem.
UIDL [msg]
Pede ao servidor para enviar de novo uma linha que contém informações sobre a mensagem eventualmente dada em argumento. Esta linha contém uma cadeia de caracteres, chamada lista de identificador única, permitindo identificar de maneira única a mensagem no servidor, independentemente da sessão. O argumento opcional é um número que corresponde a uma mensagem existente sno servidor POP, quer dizer uma mensagem não apagada)
QUITO comando QUIT pede a saída do servidor POP3. Provoca a supressão de todas as mensagens marcadas como apagadas e reenvia o estado desta acção.
O protocolo POP3 gere assim a autenticação com a ajuda de um nome de utilizador e de uma palavra-passe, em contrapartida não é seguro porque as senha, assim como os mails, circulam às claras (de maneira não codificada) na rede. Na realidade, de acordo com o RFC1939, é possível codificar a palavra-passe que utiliza o algoritmo MD5 e assim beneficiar de uma autenticação protegida. Contudo, sendo este comando opcional, poucos servidores o aplicam. Por outro lado, o protocolo POP3 bloqueia a caixa de correio aquando da consulta, o que significa que uma consulta simultânea por dois utilizadores de uma mesma caixa de correio é impossível.
Tal como é possível enviar um correio electrónico graças à Telnet, é igualmente possível aceder ao seu correio recebido graças a um simples Telnet na porta do servidor POP (110, por defeito) :
telnet mail.kioskea.net 110
(o servidor indicado acima é voluntariamente inexistente, pode tentar substituindo kioskea.net pelo domínio do seu fornecedor de acesso à Internet)
S: +OK mail.kioskea.net POP3 service S: (Netscape Messaging Server 4.15 Patch 6 (built Mar 31 2001)) C: USER jeff S: +OK Name is a valid mailbox C: PASS mon_pass S: +OK Maildrop ready C: STAT S: +OK 2 0 C: TOP 1 5 S: Subject: Bom-dia S: Salut Meandus, S: comment ca va? S : S: A bientot ! C: QUIT S: +OK
A afixação dos dados que introduz depende do cliente Telnet que utiliza. De acordo com o seu cliente Telnet, poderá talvez ter de activar a opção echo local.
O protocolo IMAP
O protocolo IMAP (Internet Message Access Protocol) é um protocolo alternativo ao protocolo POP3 mas que oferece muitas mais possibilidades:
IMAP permite gerir vários acessos simultâneos IMAP permite gerir várias caixas de correio IMAP permite triar o correio de acordo com mais critérios
O protocolo FTP (File Transfer Protocol)
Introdução ao protocolo FTP
O protocolo FTP (File Transfer Protocol) é, como o seu nome o indica, um protocolo de transferência de ficheiro.
A aplicação do protocolo FTP data de 1971, na mesma data em que um mecanismo de transferência de ficheiros (descrito no RFC 141) entre as máquinas do MIT (Massachussetts Institute of Technology) foi criado. Numerosos RFC trouxeram seguidamente melhorias ao protocolo básico, mas as maiores inovações datam de Julho de 1973.
O protocolo FTP actualmente é definido pelo RFC 959 (File Transfer Protocol (FTP) - Especificações).
O papel do protocolo FTP
O protocolo FTP define a maneira segundo a qual os dados devem ser transferidos numa redeTCP/IP.
O protocolo FTP tem como objectivos:
permitir uma partilha de ficheiros entre máquinas distantes permitir uma independência dos sistemas de ficheiros das máquinas clientes e servidor permitir transferir dados de maneira eficaz
O modelo FTP
O protocolo FTP inscreve-se num modelo cliente-servidor, ou seja, uma máquina envia ordens (o cliente) e a outra espera pedidos para efectuar acções (o servidor).
Aquando de uma conexão FTP, dois canais de transmissão estão abertos :
Um canal para os comandos (canal de controlo) Um canal para os dados
Assim o cliente, tal como o servidor, possui dois processos que permitem gerir estes dois tipos de informação:
O DTP (Data Transfer Process) é o processo encarregado de estabelecer a conexão e gerir o canal de dados. O DTP do lado do servidor chama-se SERVER-DTP, o DTP lado cliente é denominado USER-DTP
O PI (Protocol Interpreter) é o intérprete de protocolo que permite comandar o DTP com a ajuda de comandos recebidos no canal de controlo. É diferente no cliente e no servidor:
o O SERVER-PI está encarregado de ouvir os comandos que provêm de uma PI no canal de controlo numa porta dada, estabelecer a conexão para o canal de controlo, receber neste os comandos FTP da GASTAR-PI, responder-lhes e pilotar o SERVER-DTP
o O USER-PI está encarregado de estabelecer a conexão com o servidor FTP, enviar os comandos FTP, receber as respostas do SERVER-PI e de controlar USER-DTP se necessário.
Aquando da conexão de um cliente FTP a um servidor FTP, o USER-PI inicia a conexão ao servidor de acordo com o protocolo Telnet. O cliente envia comandos FTP ao servidor, este último interpreta, pilota o seu DTP, seguidamente devolve uma resposta standard. Quando a conexão é estabelecida, o servidor-Pi dá a porta para a qual os dados serão enviados ao Cliente DTP. O cliente DTP ouve então na porta especificada os dados provenientes do servidor. É importante observar que, sendo as portas de controlo e de dados canais separados, é possível enviar os comandos a partir de uma máquina e receber os dados a partir de outra. Assim, é por exemplo possível transferir dados entre dois servidores FTP passando por um cliente para enviar as instruções de controlo e transferindo as informações entre dois processos servidores conectados na porta certa.
Nesta configuração, o protocolo impõe que os canais de controlo permaneçam abertos durante toda a transferência de dados. Assim, um servidor pode parar uma transmissão se o canal de controlo for cortado aquando da transmissão.
Os comandos FTP
Todas as comunicações efectuadas pelo canal de controlo seguem as recomendações do protocolo Telnet. Assim, os comandos FTP são cadeias de caracteres Telnet (em código NVT-ASCII) terminadas pelo código de fim de linha Telnet (quer dizer, a sequência <CR>+<LF>, Carriage Return (regresso carro) seguido do carácter Line Feed, notado <CRLF>). Se o comando FTP admitir um parâmetro, este é separado do comando por um espaço (<SP>).
Os comandos FTP permitem precisar:
A porta utilizada O modo de transferência dos dados A estrutura dos dados A natureza da acção a efectuar (Retrieve, List, Store,…)
Distingue-se três tipos de comandos FTP:
Os comandos de controlo de acesso Os comandos de parametrizaçaõ de transferência Os comandos de serviço FTP
Comando de controlo de acesso
Comando Descrição
USERCadeia de caracteres que permitem identificar o utilizador. A identificação do utilizador é necessária para estabelecer uma comunicação no canal de dados
PASSCadeia de caracteres que especificam a palavra-passe do utilizador. Este comando deve ser imediatamente precedido do comando USER. Cabe ao cliente esconder a afixação deste comando por razões de segurança
ACCTcadeia de caracteres que representam a conta (account) do utilizador. Este comando não é geralmente necessário. Aquando da resposta à aceitação da palavra-passe, se a resposta for 230 esta fase não for necessária; se a resposta for 332, é.
CWDChange Working Directory : este comando permite alterar o directório corrente. Este comando necessita o caminho de acesso ao directório a atingir como argumento
CDUPChange to Parent Directory :este comando permite subir ao directório parente. Foi introduzido para remediar os problemas de nomeação de directório parente de acordo com o sistema (geralmente “. ”)
SMNT Structure Mount :
REIN Reinitialize :
QUITComando permitindo terminar a sessão corrente. O servidor espera até terminar a transferência corrente se for caso disso, seguidamente fornece uma resposta antes de fechar a conexão
Comando de parâmetros de transferência
Comando Descrição
PORT Cadeia de caracteres que permitem precisar o número de porta a utilizar
PASVComando permitindo indicar ao servidor DTP para esperar uma conexão numa porta específica escolhida aleatoriamente entre as portas disponíveis. A resposta a este comando é o endereço IP da máquina e a porta.
TYPE Este comando permite precisar o tipo de formato em que os dados serão enviados
STRU Carácter Telnet precisando a estrutura do ficheiro (F para File, R para Record, P para Page)
MODECarácter Telnet precisando o modo de transferência dos dados (S para Stream, B para Block, C para Compressed)
Comando de serviço FTP
Comando Descrição
RETREste comando (RETRIEVE) pede ao servidor DTP uma cópia do ficheiro cujo caminho de acesso passou em parâmetro.
STOR Este comando (store) pede ao servidor DTP que aceite os dados enviados sobre o canal de dados e que os armazene no ficheiro que leva o nome passado em parâmetro. Se o ficheiro
não existir, o servidor cria-o, se não esmaga-o
STOUEste comando é idêntico ao precedente, mas pede ao servidor que crie um ficheiro cujo nome é único. O nome do ficheiro é devolvido na resposta
APPE Graças a este comando (append) os dados enviados são concatenados no ficheiro que leva o nome passado em parâmetro , se ele já existir; no caso contrário, é criado.
ALLOEste comando (allocate) pede ao servidor que preveja um espaço de armazenamento suficiente para conter o ficheiro cujo nome passou em argumento.
REST
Este comando (restart) permite retomar uma transferência onde tinha parado. Para isso, este comando envia em parâmetro o indicador que representa a posição no ficheiro onde a transferência tinha sido interrompida. Este comando deve ser imediatamente seguido de um comando de transferência.
RNFREste comando (rename from) permite rebaptizar um ficheiro. Indica em parâmetro o nome do ficheiro a rebaptizar e deve ser imediatamente seguido do comando RNTO
RNTOEste comando (rename to) permite rebaptizar um ficheiro. Indica em parâmetro o nome do ficheiro a rebaptizar e deve ser imediatamente precedido pelo comando RNFR
ABOR
Este comando (abort) diz ao servidor DTP para abandonar todas as transferências associadas ao comando precedente. Se nenhuma conexão de dados estiver aberta, o servidor DTP não faz nada, se não fecha-a. Em contrapartida, o canal de controlo permanece aberto.
DELEEste comando (delete) permite suprimir o ficheiro cujo nome passou em parâmetro. Este comando é irremediável, só uma confirmação a nível do cliente pode ser feita.
RMDEste comando (remove directory) permite suprimir um directório. Indica em parâmetro o nome do directório a suprimir
MKDEste comando (make directory) permite criar um directório. Indica em parâmetro o nome do directório a criar
PWDEste comando (print working directory) permite reenviar o caminho completo do directório corrente
LIST
Este comando permite reenviar a lista dos ficheiros e directórios presentes no directório corrente. Esta lista é enviada para o DTP passivo. É possível passar em parâmetro deste comando um nome de directório, o servidor DTP enviará a lista dos ficheiros no directório passado em parâmetro
NLSTEste comando (name liste) permite enviar a lista dos ficheiros e directórios no directório corrente
SITEEste comando (site parameters) permite ao servidor propor serviços específicos, não definidos no protocolo FTP
SYST Este comando (system) permite enviar informações para o servidor distante
STAT Este comando (status) permite emitir o estado do servidor, por exemplo para conhecer a progressão de uma transferência corrente. Este comando aceita em argumento um caminho de acesso, reenvia então as mesmas informações que LIST mas sobre o canal de
controlo
HELPEste comando permite conhecer o conjunto das encomendas compreendidas pelo servidor. As informações são voltadas sobre o canal de controlo
NOOPEste comando (no operations) serve unicamente para obter um comando OK do servidor. Pode servir unicamente para não ser desligada após um tempo de inactividade demasiado longo
As respostas FTP
As respostas FTP permitem garantir a sincronização entre cliente e servidor FTP. Assim, a cada comando enviada pelo cliente, o servidor efectuará eventualmente uma acção e reenviará sistematicamente uma resposta.
As respostas são constituídas por um código de 3 números que indicam a maneira segundo a qual o comando enviado pelo cliente foi tratado. Contudo, este código de 3 números dificilmente legível por um humano, é acompanhado de um texto (cadeia de caracteres Telnet separada do código numérico por um espaço).
Os códigos de resposta são constituídos por 3 números, cujos significados são os seguintes:
O primeiro número indica o estatuto da resposta (sucesso ou falha) O segundo número indica a que é que a resposta se refere O terceiro número dá um significado mais específico (relativo a cada segundo número)
Primeiro número
Número Significado Descrição
1yzResposta preliminar positiva
A acção pedida está curso, uma segunda resposta deve ser obtida antes de enviar um segundo comando
2yzResposta positiva de realização
A acção pedida foi realizada, um novo comando pode ser enviado
3yzResposta intermédia positiva
A acção pedida está temporariamente suspensa. Informações suplementares são esperadas por parte do cliente
4yzResposta negativa de realização
A acção pedida não teve lugar porque o comando temporariamente não foi aceite. O cliente deve experimentar de novo mais tarde
5yzResposta negativa permanente
A acção pedida não teve lugar porque o comando não foi aceite. O cliente deve formular um pedido diferente
Segundo número
Número Significado Descrição
x0z SintaxeA acção possui um erro de sintaxe, ou trata-se de um comando não percebido pelo servidor
x1z InformaçãoTrata-se de uma resposta que devolve informações (por exemplo, para uma resposta a um comando STAT)
x2z Conexões A resposta refere-se ao canal de dados
x3z Autenticação e contasA resposta refere-se à ligação (USER/PASS) ou ao pedido de mudança de conta (CPT)
x4zNão utilizado pelo protocolo FTP
x5z Sistema de ficheiros A resposta refere-se ao sistema de ficheiros distante
Mais informações
Para saber mais sobre o protocolo FTP, não hesite em consultar os seguintes documentos:
La RFC 959 A RFC 959 traduzida em francês
O protocolo Telnet
Introdução ao protocolo Telnet
O protocolo Telnet é um protocolo standard de Internet que permite io interface de terminais e de aplicações através da Internet. Este protocolo fornece as regras básicas para permitir ligar um cliente (sistema composto de uma afixação e um teclado) a um intérprete de comando (do lado do servidor).
O protocolo Telnet baseia-se numa conexão TCP para enviar dados em formato ASCII codificado em 8 bits entre os quais se intercalam sequências de controlo Telnet. Fornece assim um sistema orientado para a comunicação, bidireccional (half-duplex), codificado em 8 bits fácil de aplicar.
O protocolo Telnet assenta em três conceitos fundamentais:
O paradigma do terminal rede virtual (NVT, Network Virtual Terminal); O princípio de opções negociadas; As regras de negociação.
Este protocolo é um protocolo básico, no qual se apoiam outros protocolos da sequência TCP/IP (FTP, SMTP, POP3,…). As especificações de Telnet não mencionam autenticação porque o Telnet está totalmente separado das aplicações que o utilizam (o protocolo FTP define uma sequência de autenticação acima do Telnet). Além disso, o protocolo Telnet é um protocolo de transferência de dados não seguro, o que quer dizer que os dados que veicula circulam às claras na rede (de maneira não codificada). Quando o protocolo Telnet é utilizado para ligar um hóspede distante à máquina na qual é aplicado como servidor, este protocolo é atribuído à porta 23.
Se exceptuarmos as opções e as regras de negociação associadas, as especificações do protocolo Telnet são básicas. A transmissão de dados através de Telnet consiste unicamente em transmitir os bytes no fluxo TCP (o protocolo Telnet precisa que os dados devem, por defeito - isto é, se nenhuma opção precisar o contrário- ser agrupados num tampão antes de serem enviados. Mais concretamente, isto significa que por defeito os dados são enviados linha por linha). Quando o byte 255 é transmitido, o byte seguinte deve ser interpretado como um comando. O byte 255 é assim nomeado IAC (Interpret As Command, traduza-se "interpretar como um comando). Os comandos são descritos posteriormente.
As especificações básicas do protocolo Telnet estão disponíveis no RFC 854, enquanto as numerosas opções são descritas nos RFC 855 a 861
RFC concernant Telnet
RFC 854 Telnet Protocol Specifications
RFC 855 Telnet Option Specifications
RFC 856 Telnet binary transmission
RFC 857 Telnet Echo Option
RFC 858 Telnet Suppress Go ahead Option
RFC 859 Telnet Status Option
RFC 860 Telnet Timing Mark Option
RFC 861 Telnet Extended options-list Option
A noção de terminal virtual
No início da Internet, a rede (ARPANET) era composta por máquinas cujas configurações eram muito pouco homogéneas (teclados, jogos de caracteres, resoluções, comprimento das linhas de afixação). Por outro lado, as sessões dos terminais possuíam igualmente a sua própria maneira de controlar os fluxos de dados em entrada/saída.
Assim, em vez de criar adaptadores para cada tipo de terminal para poder haver uma interoperabilidade destes sistemas, decidiu-se a criação de um interface standard, chamado NVT (Network Virtual Terminal, leia-se "Terminal rede virtual"), fornecendo uma base de comunicação standard, composta por:
Caracteres ASCII de 7 bits aos quais se acrescenta o código ASCII vasto Três caracteres de controlo Cinco caracteres de controlo opcionais Um jogo de sinais de controlo básico
O protocolo Telnet consiste assim em criar uma abstração do terminal, permitindo a qualquer hóspede (cliente ou servidor) comunicar com outro hóspede sem conhecer as suas características.
O princípio de opções negociadas
As especificações do protocolo Telnet permitem ter em conta o facto que certos terminais possam propôr serviços adicionais, não definidos nas especificações básicas (mas conformes às especificações), a fim de poder utilizar funções avançadas. Assim, estas funcionalidades traduzem-se em termos de opções. O protocolo Telnet propõe, por conseguinte, um sistema de negociações de opções que permitem a utilização de funções avançadas sob a forma de opções, iniciando pedidos para solicitar a autorização ao sistema distante.
As opções de Telnet afectam separadamente cada direção do canal de dados. Assim, cada extremidade pode negociar as opções, quer dizer, definir as opções que ela:
quer utilizar (DO) recusa utilizar (DON' T) quer que a outra extremidade utilize (WILL) recusa que a outra extremidade utilize (WON' T)
Desta maneira, cada uma das partes pode emitir um pedido de utilização de uma opção. A outra parte deve então responder se aceita ou não a utilização da opção. Se o pedido se refere a uma desactivação de opção, o destinatário do pedido não deve recusar para ser totalmente compatível com o modelo NVT.
A negociação de opções Telnet
Pedido Resposta Interpretação
DO WILL O emissor começa utilizando a opção
WON'T O emissor não deve utilizar a opção
WILLDO O emissor começa utilizando a opção, após ter enviado DO
DON'T O emissor não deve utilizar a opção
DON'T WON'T O emissor assinala que desactivou a opção
WON'T DON'T O emissor assinala que o emissor deve desactivar a opção
Existem 255 códigos de opções. O protocolo Telnet prevê contudo um espaço de endereçamento que permite descrever novas opções.O RFC 855 explica como documentar qualquer nova opção.
As regras de negociação
Regras de negociação de opções permitem evitar situações de bloqueio (por exemplo, que uma das partes envie pedidos de negociação de opções a cada confirmação da outra parte).
Os pedidos devem ser emitidos apenas aquando de uma mudança de modo Quando uma das partes recebe um pedido de mudança de modo, deve adoptá-lo apenas se
não se encontrar já no modo adequado Um pedido deve ser inserido no fluxo de dados apenas no lugar onde tem efeito.
Os caracteres de controlo da saída
Os caracteres seguintes são comandos que permitem controlar a afixação do terminal rede virtual :
Encomendas de controlo da afixação
Número Código Nome Significado
0 NULL NullEste comando permite enviar dados ao hóspede distante sem que estes sejam interpretados (nomeadamente para assinalar que o hóspede local ainda está em linha)
1 LFLine Feed
Este comando permite deslocar o cursor de impressão para a linha seguinte, na mesma posição horizontal
2 CRCarriage Return
Este comando (Retour Chariot) permite deslocar o cursor de impressão para a extrema esquerda da linha corrente
Assim, define-se o comando CRLF, composto pelos dois comandos CR e LF um após o outro (em qualquer ordem) que permite deslocar o cursor de impressão para a extrema esquerda da linha seguinte.
Os caracteres de controlo opcionais
Os caracteres precedentes são os únicos (entre os 128 caracteres do código ASCII básico e os 128 caracteres do código ASCII vasto) a possuir uma significado específico para o terminal rede virtual. Os caracteres seguintes podem eventualmente ter um significado num terminal rede virtual, mas não são necessariamente aplicados.
Comandos de controlo da afixação
Número Código Nome Significado
7 BEL Bell Este comando permite emitir um sinal sonoro ou visual sem alterar a
posição do cursor
8 BS BackSpaceEste comando permite alterar a posição do cursor para a sua posição precedente
9 HTHorizontal Tab
Este comando permite alterar a posição do cursor para a tabulação seguinte à direita
11 VTVertical Tab
Este comando permite alterar a posição do cursor para a tabulação seguinte da linha de baixo
12 FF Form FeedEste comando permite alterar a posição do cursor para baixo à página seguinte conservando a posição horizontal
Os caracteres de controlo da sessão
Os caracteres seguintes são comandos que permitem controlar a sessão Telnet. Estes comandos, para serem interpretados como tal, devem ser precedidos do carácter de escape IAC (Interpret As Command). Assim, se estes bytes forem transmitidos sem estarem precedidos do carácter IAC, serão tratados como simples caracteres. Para transmitir o carácter IAC, é necessário que esteja precedido de um carácter de escape (ele mesmo), noutros termos, ele deve ser duplicado.
Os comandos que correspondem a uma negociação de opção devem ser seguidos de um byte que precisa a opção. Estes comandos permitem interromper sinais, suprimir informações no esconderijo do terminal, …
Os caracteres de controlo da sessão
Número Código Nome Significado
240 SE Fim de negociação de opção
241 NOPNo Operation
Este comando permite enviar dados ao hóspede distante sem que estes sejam interpretados (nomeadamente para assinalar que o hóspede local continua em linha)
242 DM Data Mark
Permite esvaziar o conjunto dos tampões entre o terminal rede virtual e o hóspede distante. Corresponde a um toque sobre a tecka Synch do NVT e deve imperativamente ser associado a uma marcação de bit Urgente de TCP
243 BRK Break Carácter Break do terminal virtual
244 IPInterrupt Process
Este comando permite suspender, interromper ou abandonar o processo distante
245 AOAbort Output
Este comando permite suspender, interromper ou abandonar a afixação do processo distante
246 AYTAre You There
Este comando permite verificar que o sistema distante continua “vivo”
247 ECErase Character
Este comando permite suprimir o carácter precedente
248 EL Erase Line Este comando permite suprimir a linha precedente
249 GA Go Ahead Este comando permite inverter o controlo, para as ligações half-duplex
250 SB SBEste comando indica que os dados que seguem são uma negociação da opção precedente
251 WILLcode d'option
252 WON'Tcode d'option
253 DOcode d'option
254 DON'Tcode d'option
255 IACInterpret As Command
Este comando permite interpretar o byte seguinte como um comando. O comando IAC permite ir além dos comandos básicos
Os RFC
O que significa RFC?
Os RFC (Request For Comments) são um conjunto de documentos de referência junto da Comunidade Internet e que descrevem, especificam, ajudam a aplicação, estandardizam e debatem a maioria das normas, padrões, de tecnologias e protocolos ligados à Internet e às redes em geral.
Por quem foram escritos os RFC?
A sequência de protocolos TCP/IP representa um conjunto de normas estabelecidas por um organismo que se chama IETF (Internet Engineering Tasking Force). Este publica oficialmente os seus relatórios sob a formas de pedidos, disponíveis para todos, permitindo esclarecer um grande número de assuntos relativos ao TCP/IP.
Cada um destes documentos representa uma proposta de especificação que pode a qualquer momento tornar-se obsoleta por um novo documento RFC. Assim, os RFC são ficheiros textos cujo nome é “rfcxxxx.txt”, sendo xxxx um número incrementado para cada novo RFC. Existem actualmente mais de 2000, representando uma dimensão de cerca de 130Mo (25Mo uma vez comprimidos). Contudo, muitos destes ficheiros foram substituídos por ficheiros mais recentes.
Na realidade, qualquer pessoa pode escrever um RFC e apresentá-lo ao IETF, transmitindo-o ao responsável: rfc.editor@rfc.editor.org Se este for aceite, aparecerá após ter sido criticada pelos responsáveis. O RFC1543, intitulado "instructions to RFC authors", explica como redigir um RFC.
Quais são os RFC interessantes?
Os RFC mais interessante são os RFC recentes, que falam dos protocolos ou serviços mais usuais:
Especificação RFC
Protocolo UDP RFC768
Protocolo IP RFC791
Protocolo ICMP RFC792
Protocolo TCP RFC793
Protocolo FTP RFC959
Internet Mail RFC822
ProtocoloTelnet RFC854
Protocolo NNTP RFC977
Netbios RFC1001
Protocolo SLIP RFC1055
MIB RFC1156
TCP/IP RFC1180
FAQ para os principiantes RFC1206
FAQ para as pessoas experientes RFC1207
Glossário sobre as redes RFC1208
Os RFC RFC1325
MIMO (MultiPurpose Mail Extension) RFC2045, RFC2046 et RFC2047
Subsídio de endereços IP para as intranets RFC1597
Protocolo PPP RFC1661
Os números de porta RFC3232
Protocolo HTTP RFC2068
Protocolo LDAPv3 RFC2251
Protocolo SMTP RFC2821
Internet
O que é a Internet?
No início da informática, os computadores foram aperfeiçoados e, assim que foram capazes de funcionar individualmente, algumas pessoas tiveram a ideia de os ligar entre eles para trocar dados: é o conceito de rede. Para tal, foi necessário criar ligações físicas entre os computadores de modo a que a informação pudesse circular, mas também criar uma linguagem de comunicação de modo a possibilitar uma troca real. Decidiu-se que esta linguagem seria chamada: protocolo. Na Internet, são utilizados numerosos protocolos, que fazem parte de uma sequência de protocolos que se chama TCP/IP. O TCP/IP baseia-se na identificação de cada computador por um endereço chamado endereço IP que permite encaminhar os dados para o bom endereço. De seguida, associaram-se a estes endereços nomes de domínio para nos lembrarmos mais facilmente.
Redes heterogéneas (de naturezas diferentes) desenvolveram-se nos quatro cantos do globo; algumas pessoas decidiram ligar estas redes entre elas (como as universidades, ou o exército). Assim, os protocolos evoluíram permitindo a comunicação de todas as redes para formar a rede das redes, formando pouco a pouco uma gigantesca teia de aranha (em inglês “ web”), que forma a rede mais vasta, contendo todas as redes, chamada Internet! Na Internet, existem diferentes protocolos (linguagens entre os computadores) que permitem fazer diferentes coisas:
IRC : conversar em directo
HTTP : consultar páginas web FTP : transferir arquivos e muitas outras coisas
Atribui-se a cada um dentre eles um número (a porta), que é transmitido no momento da comunicação (a transmissão é efectuada por pequenos pacotes de informações). Assim, é possível saber que programa corresponde a cada pequeno pacote :
os pacotes HTTP chegam pela porta 80 e são transmitidos ao navegador Internet a partir da página que foi chamada
os pacotes IRC chegam pela porta 6667 (ou outra situada geralmente à volta de 7000) e são transmitidos a partir de um cliente IRC como mIRC (ou outro)
Ligar-se à Internet
A placa de rede é o elemento do computador que permite conectar-se a uma rede através de linhas especialmente concebidas para transitar informações numéricas. O modem permite conectar-se a uma rede através das linhas telefónicas, que não foram concebidas inicialmente para esse efeito mas que continuam a ser o meio de comunicação mais usado.
A placa de rede é associada a um endereço IP, permitindo caracterizar o computador na rede.
A conexão através de um modem é totalmente diferente. Com efeito, um modem permite estabelecer uma comunicação entre dois computadores através de uma linha telefónica. Pode-se ter acesso a uma rede ( e por consequência à Internet) contactando um computador ligado (“por um lado”) a uma ou várias linhas telefónicas (para receber a chamada) e (“por outro lado”) a uma rede através de uma placa rede.
Este computador pertence geralmente ao seu fornecedor de acesso Internet (FAI). Quando se liga através do seu intermediário, empresta um endereço IP que o computador guardará durante o tempo da ligação. A cada conexão, ele atribui arbitrariamente um dos endereços IP livres que possui. Se o fornecedor tiver condições de fornecer o mesmo endereço a cada conexão, fala-se então “de endereço IP fixo”.
Protocolos
O que é um protocolo?
Um protocolo é um método standard que permite a comunicação entre processos (que se executam eventualmente em diferentes máquinas), isto é, um conjunto de regras e procedimentos a respeitar para emitir e receber dados numa rede. Existem vários, de acordo com o que se espera da comunicação. Certos protocolos, por exemplo, serão especializados na troca de ficheiros (o FTP), outros poderão servir para gerir simplesmente o estado da transmissão e os erros (é o caso do protocolo ICMP),…
Na Internet, os protocolos utilizados fazem parte de uma sequência de protocolos, quer dizer, 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
Protocolos orientados e não orientados para conexão
Classificam-se geralmente os protocolos em duas categorias, de acordo com o nível de controlo dos dados que se deseja:
Os protocolos orientados para a conexão : Trata-se dos protocolos que operam um controlo de transmissão dos dados durante uma comunicação estabelecida entre duas máquinas. Em tal esquema, a máquina receptora envia avisos de recepção aquando da comunicação, assim a máquina emissora é fiadora da validade dos dados que envia. Os dados são assim enviados sob a forma de fluxo. O TCPé um protocolo orientado para a conexão
Os protocolos não orientados para a conexão : Trata-se de um modo de comunicação no qual a máquina emissora envia dados sem prevenir a máquina receptora, e a máquina receptora recebe os dados sem avisos de recepção à primeira. Os dados são assim enviados sob a forma de blocos (datagramas). O UDP é um protocolo não orientado para a conexão
Protocolo e aplicação
Um protocolo define unicamente a maneira pela qual as máquinas devem comunicar, quer dizer, a forma e a sequência dos dados a trocar. Um protocolo não define, em contrapartida, a maneira de programar um software de tal maneira a que seja compatível com o protocolo. Chama-se assim implementação à tradução de um protocolo em linguagem de programação.
As especificações dos protocolos nunca são exaustivas, assim é habitual que as aplicações sejam objecto de uma certa interpretação das especificações, oque conduz às vezes às especificidades de certas aplicações ou, pior ainda, à incompatibilidades ou falhas de segurança!
Endereço IP
O que é um endereço IP
Na Internet, os computadores comunicam entre eles graças ao protocolo IP (Internet Protocol), que utiliza endereços numéricos, chamados endereços IP, compostos por 4 números inteiros (4 bytes) entre 0 e 255 e notados sob a forma xxx.xxx.xxx.xxx. Por exemplo, 194.153.205.26 é um endereço IP com forma técnica.
Estes endereços servem para os computadores da rede para comunicarem entre eles, assim cada computador de uma rede possui um endereço IP único nessa rede.
É o ICANN (Internet Corporation for Assigned Names and Numbers, substituindo o IANA, Internet Assigned Numbers Agency, desde 1998) que está encarregado de atribuir endereços IP públicos, isto é, os endereços IP dos computadores directamente ligados à rede pública de Internet.
Decodificar um endereço IP
Um endereço IP é um endereço 32 bits, geralmente notado sob a forma de 4 números inteiros separados por pontos. Distinguem-se, com efeito, duas partes no endereço IP :
uma parte dos números à esquerda designa a rede e chama-se ID de rede (em inglês netID), Os números à direita designam os computadores desta rede e chamam-se ID de hóspede (em
inglês host-ID).
Repare no exemplo abaixo:
Tomemos a rede de esquerda: 194.28.12.0. Contém os computadores seguintes :
194.28.12.1 a 194.28.12.4
Repare na rede à direita: 178.12.0.0. Compreende os computadores seguintes :
178.12.77.1 a 178.12.77.6
No caso acima, as redes são notadas 194.28.12 e 178.12.77, seguidamente numera-se cada um dos computadores que a constituem.
Imagine uma rede notada 58.0.0.0. Os computadores desta rede poderão ter os endereços IP que vão de 58.0.0.1 a 58.255.255.254. Trata-se de atribuir os números de modo a que haja uma organização na hierarquia dos computadores e dos servidores.
Assim, quanto mais pequeno for o número de bits reservado à rede, mais esta pode conter computadores.
Com efeito, uma rede notada 102.0.0.0 pode conter computadores cujo endereço IP pode variar entre 102.0.0.1 e 102.255.255.254 (256*256*256-2=16777214 possibilidades), enquanto uma rede notada 194.26 poderá conter apenas computadores cujo endereço IP esteja compreendido entre 194.26.0.1 e 194.26.255.254 (256*256-2=65534 possibilidades), é a noção de classe de endereço IP.
Endereços específicos
Quando se anula a parte host-id, isto é, quando se substituem os bits reservados às máquinas da rede por zeros (por exemplo 194.28.12.0), obtém-se o que chamamos de endereço rede. Este endereço não pode ser atribuído a nenhum dos computadores da rede.
Quando a parte netid é anulada, quer dizer, quando os bits reservados à rede são substituídos por zeros, obtém-se o endereço máquina. Este endereço representa a máquina especificada pelo host-ID que se encontra na rede corrente.
Quando todas as bits da parte host-id são de 1, o endereço obtido chama-se endereço de divulgação (em inglês broadcast). Trata-se de um endereço específico, permitindo enviar uma mensagem a todas as máquinas situadas na rede especificada pelo netID.
Pelo contrário, quando todos os bits da parte netid são 1, o endereço obtido constitui o endereço de divulgação limitada (multicast).
Por último, o endereço 127.0.0.1 chama-se endereço de defeito (em inglês loopback), porque designa a máquina local (em inglês localhost).
As classes de redes
Os endereços IP estão repartidos por classes, de acordo com o número de bytes que representam a rede.
Classe A
Num endereço IP de classe A, o primeiro byte representa a rede.
O bit de peso forte (o primeiro bit, o da esquerda) está a zero, o que significa que há 27 (00000000 à 01111111) possibilidades de redes, quer dizer 128 possibilidades. Contudo, a rede 0 (bits que valem 00000000) não existe e o número 127 é reservado para designar a sua máquina.
As redes disponíveis em classe A são por conseguinte as redes que vão de 1.0.0.0 a 126.0.0.0 (os últimos bytes são zeros que indicam que se trata de redes e não de computadores!)
Os três bytes à direita representam os computadores das redes, a rede pode por conseguinte conter um número de computador igual a: 224-2 = 16777214 computadores.
Um endereço IP de classe A, binário, parece-se com isto :
0 xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
Rede Computadores
Classe B
Num endereço IP de classe B, os dois primeiros bytes representam a rede.
Os dois primeiros bits são 1 e 0, o que significa que há 214 (10 000000 00000000 do 111111 11111111) possibilidades de redes, quer dizer de 16384 redes possíveis. As redes disponíveis em classe B são por conseguinte as redes que vão de 128.0.0.0 a 191.255.0.0
Os dois bytes de direita representam os computadores da rede. A rede pode por conseguinte conter um número de computadores igual a: 216-21 = 65534 computadores.
Um endereço IP de classe B, binário, assemelha-se a isto:
10 xxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
Rede Computadores
Classe C
Num endereço IP de classe C, os três primeiros bytes representam a rede. Os três primeiros bits são 1,1 e 0, que significa que há 221 possibilidades de redes, quer dizer 2097152. As redes disponíveis em classe C são por conseguinte as redes que vão de 192.0.0.0 a 223.255.255.0
O byte de direita representa os computadores da rede, a rede pode por conseguinte conter: 28-21 = 254 Computadores
Um endereço IP de classe C, binário, assemelha-se a isto :
110 xxxxx xxxxxxxx xxxxxxxx xxxxxxxx
Rede Computadores
Atribuição dos endereços IP
O objectivo da divisão dos endereços IP em três classes A, B e C, é facilitar a investigação de um computador na rede. Com efeito, com esta notação é possível procurar inicialmente a rede que se deseja atingir e seguidamente procurar um computador . Assim, a atribuição dos endereços IP faz-se de acordo com a dimensão da rede.
Classe Número de redes possíveis Números máximo de computadores em cada uma
A 126 16777214
B 16384 65534
C 2097152 254
Os endereços de classe A são reservados especialmente para as grandes redes, enquanto se atribuirão os endereços de classe C a pequenas redes de empresa, por exemplo.
Endereços IP reservados
Acontece frequentemente numa empresa ou uma organização que um só computador esteja ligdo à Internet, é por seu intermédio que os outros computadores da rede acedem à Internet (fala-se geralmente de proxy ou ponte estreita).
Neste caso, o único computador ligado à Internet tem necessidade de reservar um endereço IP junto do ICANN. Contudo, os outros computadores têm na mesma necessidade de um endereço IP para poderem comunicar entre eles internamente.
Assim, o ICANN reservou um punhado de endereços em cada classe para permitir afectar um endereço IP aos computadores de uma rede local ligada à Internet sem correr o risco de criar uma confusão de endereços IP na rede das redes. Trata-se dos endereços seguintes :
Endereços IP privados de classe A: 10.0.0.1 a 10.255.255.254, permitindo a criação de vastas redes privadas que compreendem milhares de computadores.
Endereços IP privados de classe B: 172.16.0.1 à 172.31.255.254, permitindo criar redes privadas de média dimensão.
Endereços IP privados de classe C: 192.168.0.1 à 192.168.0.254, para instalação de pequenas redes privadas.
Máscara de subrede
Para compreender o que é uma máscara, talvez seja interessante consultar a secção “mecânico” que fala das máscaras em binário
Resumindo, fabrica-se uma máscara contendo 1 nos luagres dos bits que desejamos conservar, e 0 para os que queremos anular.Uma vez criada esta máscara, basta fazer um ET lógico entre o valor que se deseja mascarar e a máscara, para deixar intacta a parte que deseja e anular o resto.
Assim, uma máscara rede (em inglês netmask) apresenta-se sob a forma de 4 bytes separados por pontos (como um endereço IP), compreende (na sua notação binária) dos zeros a nível das bits do endereço IP que quer-se anular (e do 1 a nível dos que deseja-se conservar).
Interesse de uma máscara de subrede
O primeiro interesse de uma máscara de subrede é permitir identificar simplesmente a rede associada a um endereço IP.
Com efeito, a rede é determinada por diversos bytes do endereço IP (1 byte para os endereços de classe A, 2 para os endereços de classe B, e de 3 bytes para a classe C). Ora, uma rede é notada tomando o número de bytes que a carateriza, seguidamente completando com zeros. A rede associada ao endereço 34.56.123.12 é por exemplo 34.0.0.0, porque se trata de um endereço IP de classe A.
Para conhecer o endereço da rede associada ao endereço IP 34.56.123.12, basta então aplicar uma máscara cujo primeiro byte comporta apenas 1 (quer dizer, 255 em notação decimal), seguidamente 0 sobre os bytes seguintes. A máscara é: 11111111.00000000.00000000.00000000 A máscara associada ao endereço IP 34.208.123.12 é por conseguinte 255.0.0.0. O valor binário de 34.208.123.12 é: 00100010.11010000.01111011.00001100 Um ET lógico entre o endereço IP e a máscara dá assim o resultado seguinte :
00100010.11010000.01111011.00001100 E 11111111.00000000.00000000.00000000 = 00100010.00000000.00000000.00000000
Isto é, 34.0.0.0. Trata-se da rede associada ao endereço 34.208.123.12
Generalizando, é possível obter as máscaras que correspondem a cada classe de endereço:
Para um endereço de Classe A, só o primeiro byte deve ser conservado. A máscara possui a forma seguinte 11111111.00000000.00000000.00000000, quer dizer 255.0.0.0 em notação decimal;
Para um endereço de Classe B, os dois primeiros bytes devem ser conservados, o que dá a máscara seguinte 11111111.11111111.00000000.00000000, correspondente a 255.255.0.0 em notação decimal;
Para um endereço de Classe C, com o mesmo raciocínio, a máscara possuirá a forma seguinte 11111111.11111111.11111111.00000000, quer dizer 255.255.255.0 em notação decimal
Criação de subredes
Retomemos o exemplo da rede 34.0.0.0, e suponhamos que desejamos que os dois primeiros bits do segundo byte permitam designar a rede. A máscara a aplicar será então:
11111111.11000000.00000000.00000000
quer dizer 255.192.0.0
Se se aplicar esta máscara, ao endereço 34.208.123.12 obtém-se :
34.192.0.0
Realmente há 4 casos possíveis para o resultado máscara de um endereço IP de um computador da rede 34.0.0.0
Ou os dois primeiros bits do segundo byte são 00, neste caso o resultado é 34.0.0.0 Ou os dois primeiros bits do segundo byte são 01, neste caso o resultado é 34.64.0.0 Ou os dois primeiros bits do segundo byte são 10, neste caso o resultado é 34.128.0.0 Ou os dois primeiros bits do segundo byte são 11, neste caso o resultado é 34.192.0.0
Esta máscara divide por conseguinte uma rede de classe A (que pode admitir 16.777.214 computadores) em 4 subredes - daí o nome de máscara de subrede - que pode admitir 222 computadores, quer dizer 4.194.304 computadores.
Pode ser interessante observar que nos dois casos, o número total de computadores é o mesmo, quer dizer 16.777.214 computadores (4 x 4194304 - 2 = 16777214).
O número de subredes depende do número de bits atribuídos a mais à rede (aqui 2). O número de subredes é por conseguinte:
números de bits números subredes
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 (impossível para uma classe C) 256
DNS (Sistema de nomes de domínio)
O que é o DNS?
Cada computador directamente ligado à Internet possui pelo menos um endereço IP próprio. Contudo, os utilizadores não querem trabalhar com endereços numéricos do tipo 194.153.205.26 mas com um nome de domínio ou endereços mais explícitos (chamados endereços FQDN) do tipo [pt.kioskea.net].
Assim, é possível associar nomes em linguagem corrente aos endereços numéricos graças a um sistema chamado DNS (Domain Name System).
Chama-se resolução de nomes de domínios (ou resolução de endereços) à correlação entre os endereços IP e o nome de domínio associado.
Nomes de hóspedes
No início do TCP/IP, como as redes eram muito pouco vastas ou, dito de outra forma, como o número de computadores ligados a uma mesma rede era reduzido, os administradores de rede criavam ficheiros chamados tabelas de conversão manual. Estas tabelas de conversão manual eram ficheiros sequenciais, geralmente chamados hosts ou hosts.txt, associando em cada linha o endereço IP da máquina e o nome literal associado, chamados nome de hóspede.
Introdução ao Domain Name System
O sistema precedente de tabelas de conversão necessitava, no entanto, da actualização manual das tabelas dos computadores no caso de adição ou modificação de um nome de máquina. Assim, com a explosão da dimensão das redes, e da sua interconexão, foi necessário instalar um sistema de gestão dos nomes hierarquizado e fácil de administrar. O sistema apelidado de Domain Name System (DNS), que se pode traduzir por Sistema de nome de domínio, foi criado em Novembro de 1983 por Paul Mockapetris (RFC 882 e RFC 883), e seguidamente revisto em 1987 no RFCs 1034 e 1035. O DNS foi objecto de numeroso RFCs.
Este sistema propõe:
um espaço de nomes hierárquico que permite garantir a unicidade de um nome numa estrutura arborescente, como os /contents/unix/unix-fichiers.php3 sistemas de ficheiros de Unix.
um sistema de servidores distribuídos que permite tornar disponível o espaço de nomes. um sistema de clientes que permite "resolver" os nomes de domínios, isto é, interrogar os
servidores para conhecer o endereço IP que corresponde a um nome.
O espaço de nomes
A estruturação do sistema DNS baseia-se numa estrutura arborescente na qual são definidos domínios de nível superiores (chamados TLD, para Top Level Domains), ligados a um nó raíz representado por um ponto.
Chama-se "nome de domínio" a cada nó da árvore. Cada nó possui uma etiqueta (em inglês "label") de um comprimento máximo de 63 caracteres.
O conjunto dos nomes de domínio constitui assim uma árvore invertida onde cada nó está separado do seguinte por um ponto (".").
A extremidade de um ramo chama-se hóspede, e corresponde a uma máquina ou a uma entidade da rede. O nome de hóspede que lhe é atribuído deve ser único no domínio considerado ou, se for caso disso, no subdomínio. Por exemplo, o servidor web de um domínio tem geralmente o nome www.
A palavra "domínio" corresponde formalmente ao sufixo de um nome de domínio, isto é, o conjunto das etiquetas de nós de uma arborescência, com excepção do hóspede.
O nome absoluto correspondente ao conjunto das etiquetas dos nós de uma arborescência, separados por pontos, e terminado por um ponto final, é chamado de endereço FQDN (Fully Qualified Domain Name, ou seja, Nome de Domínio totalmente Qualificado). A profundidade máxima da arborescência é de 127 níveis e o comprimento máximo de um nome FQDN é de 255 caracteres. O endereço FQDN permite localizar de maneira única uma máquina na rede das redes. Assim, pt.kioskea.net. representa um endereço FQDN.
Os servidores de nomes
As máquinas chamadas servidores de nome de domínio permitem estabelecer a correspondência entre o nome de domínio e o endereço IP das máquinas de uma rede.
Cada domínio possui um servidor de nomes de domínios, chamado "servidor de nomes primário" (Primary domain name server), bem como um servidor de nomes secundário (secondary domaine name server), permitindo substituir o servidor de nomes primário no caso de indisponibilidade.
Cada servidor de nome está declarado num servidor de nome de domínio de nível imediatamente superior, o que permite implicitamente uma delegação de autoridade sobre os domínios. O sistema de nome é uma arquitectura distribuída, onde cada entidade é responsável pela gestão do seu nome de
domínio. Não existe por conseguinte um organismo encarregue da gestão do conjunto dos nomes de domínios.
Os servidores que correspondem aos domínios de mais alto nível (TLD) são chamados "servidores de nomes raiz". Existem treze, espalhados pelo planeta, possuindo os nomes "a.root-servers.net" a "m.root-servers.net".
Um servidor de nomes define uma zona, ou seja, um conjunto de domínios sobre o qual o servidor tem autoridade. O sistema de nomes de domínio é transparente para o utilizador, no entanto é necessário não esquecer os seguintes pontos:
Cada computador deve ser configurado com o endereço de uma máquina capaz de transformar qualquer nome num endereço IP. Esta máquina chama-se Domain Name Server. Não desespere : assim que se ligar à Internet, o fornecedor de acesso vai automaticamente alterar os seus parâmetros de rede para colocar à sua disposição estes servidores de nomes.
O endereço IP de um segundo Domain Name Server (secondary Domain Name Server) deve igualmente ser definido: o servidor de nomes secundário pode substituir o servidor de nomes primário no caso de disfuncionamento.
O servidor mais comum chama-se BIND (Berkeley Internet Name Domain). Trata-se de um software livre disponível nos sistemas UNIX, desenvolvido inicialmente pela universidade de Berkeley, na Califórnia, e doravante mantido pelo ISC (Internet Systems Consortium).
Resolução de nomes de domínio
O mecanismo que consiste em encontrar o endereço IP que corresponde ao nome de um hóspede é chamado "resolução de nome de domínio". A aplicação que permite realizar esta operação (geralmente integrada no sistema de exploração) chama-se "resolutor" (em inglês "resolver").
Quando uma aplicação deseja conectar-se a um hóspede conhecido pelo seu nome de domínio (por exemplo "pt.kioskea.net"), esta vai interrogar um servidor de nomes definido na sua configuração de rede. Cada máquina conectada à rede possui na sua configuração os endereços IP de dois servidores de nomes do seu fornecedor de acesso.
Um pedido é então enviado ao primeiro servidor de nomes (chamado "servidor de nome primário"). Se este possuir o registo no seu esconderijo, envia-o à aplicação, caso contrário interroga um servidor raíz (no nosso caso, um servidor raíz que corresponde ao TLD ".net"). O servidor de nome raíz reenvia uma lista de servidores de nomes que têm autoridade sobre o domínio (no caso presente, os endereços IP dos servidores de nomes primário e secundário de kioskea.net).
O servidor de nomes primário que tendo autoridade sobre o domínio vai então ser interrogado e enviar o registo que corresponde ao hóspede no domínio (no nosso caso www).
Tipos de registos
Um DNS é uma base de dados repartida que contém registos, chamados RR (Resource Records), relativos aos nomes de domínios. As únicas pessoas a quem dizem respeito as leituras das informações abaixo são os responsáveis pela administração de um domínio, dado que o funcionamento dos servidores de nomes é totalmente transparente para os utilizadores.
Devido ao sistema esconderijo que permite ao sistema DNS ser repartido, o registo de cada domínio possui uma duração, chamada TTL (Time To Live, ou esperança de vida), permitindo ao servidor intermédio conhecer a data da informação e assim saber se é necessário ou não reverificar.
Geralmente, um registo DNS comporta as seguintes informações:
Nome de domínio (FQDN) TTL Tipo Classe RData
pt.kioskea.net. 3600 A IN 163.5.255.85
Nome de domínio: o nome de domínio deve ser um nome FQDN, ou seja , deve terminar por um ponto. Se o ponto for omitido, o nome de domínio é relativo, o que quer dizer que o nome de domínio principal será acrescido ao domínio digitado;
Tipo : um valor em 16 bits que especifica o tipo de recurso descrevido pelo registo. O tipo de recurso pode ser um dos seguinte:
o A : trata-se do tipo básico que estabelece a correspondência entre um nome canónico e um endereço IP. Além disso, podem existir vários registos A, correspondendo às diferentes máquinas da rede (servidores).
o CNAME (Canonical Name): permite fazer corresponder um pseudónimo ao nome canónico. É particularmente útil para fornecer nomes alternativos que correspondem aos diferentes serviços de uma mesma máquina.
o HINFO : trata-se de um campo unicamente descritivo que permite descrever o material (CPU) e o sistema de exploração (OS) de um hóspede. É aconselhável geralmente não o informar para não fornecer elementos que possam ser úteis para piratas informáticos.
o MX (Mail eXchange): corresponde ao servidor de gestão do correio. Quando um utilizador envia um correio electrónico para um endereço (utilisateur@domaine), o servidor de correio de saída interroga o servidor de nome que tem autoridade sobre o domínio a fim de obter o registo MX. Podem existir vários MX por domínio, para fornecer uma redundância no caso de avaria do servidor de serviço de mensagens principal. Assim, o registo MX permite definir uma prioridade com um valor que pode ir de 0 a 65.535:
o NS corresponde ao servidor de nomes que tem autoridade sobre o domínio. o PTR : um ponteiro para outra parte do espaço de nomes de domínios. o SOA (Start Of Authority): o campo SOA permite descrever o servidor de nome que tem
autoridade sobre a zona, bem como o endereço eletrónico do contato técnico (cujo carácter "@" é substituído por um ponto).
Classe : a classe pode ser quer IN (que corresponde aos protocolos de Internet, trata-se por conseguinte do sistema utilizado no nosso caso), quer CH (para o sistema caótico);
RDATA : trata-se dos dados que correspondem ao registo. Eis as informações esperadas de acordo com o tipo de registo:
o A: um endereço IP em 32 bits; o CNAME: um nome de domínio; o MX: um valor de prioridade de 16 bits, seguido de um nome de hóspede; o NS: um nome de hóspede; o PTR: um nome de domínio; o SOA: vários campos.
Domínios de elevado nível
Existe duas categorias de TLD (Top Level Domain, ou seja, domínios de nível mais elevado): Os domínios ditos "genéricos", chamados gTLD (generic TLD). Os gTLD são nomes de domínios genéricos de nível superior que propõem uma classificação de acordo com o sector de atividade. Assim, cada gTLD possui as suas próprias regras de acesso : o gTLD historico :
o ..arpa corresponde às máquinas procedentes da rede original; o .com correspondia inicialmente às empresas de vocação comercial. Doravante, este
TLD tornou-se o " TLD por defeito" e a aquisição de domínios que possuem esta extensão é possível, incluindo por particulares.
o .edu corresponde aos organismos educativos; o .gov corresponde aos organismos governamentais; o .int corresponde às organizações internacionais; o .mil corresponde aos organismos militares; o .net correspondia inicialmente aos organismos associados às redes. Este TLD tornou-se
desde alguns anos um TLD corrente. A aquisição de domínios que possuem esta extensão é possível, incluindo por particulares.
o .org corresponde habitualmente às empresas com fins não lucrativos. o novos gTLD introduzidos em Novembro de 2000 pelo ICANN :
.aero corresponde à indústria aeronáutica; .biz (negócio) correspondendo às empresas comerciais; .museum corresponde aos museus; .name corresponde aos nomes de pessoas ou os nomes de personagens
imaginários; .info corresponde às organizações ligadas à informação; .coop correspondendo às cooperativas; .pro correspondendo às profissões liberais.
o gTLD especiais : .arpa corresponde às infra-estruturas de gestão da rede. O gTLD arpa serve
para resolução oposta das máquinas da rede, permitindo encontrar o nome que corresponde a um endereço IP.
Os domínios ditos "nacionais", chamados ccTLD (country code TLD). Os ccTLD correspondem aos diferentes países e os seus nomes correspondem às abreviaturas dos nomes de países definidas pela norma ISO 3166. O quadro abaixo recapitula a lista dos ccT
CódigoPaís
AC Ilha da Ascensão
AD Andorra
AEEmirads Árabes Unidos
AF Afeganistão
AGAntígua e Barbuda
AI Anguila
AL Albânia
AM Arménia
ANAntilhas Holandesas
AO Angola
AQ Antártica
AR Argentina
ASSamoa Americana
AT Áustria
AU Austrália
AW Aruba
AZ Azerbaijão
BABósnia-Herzegovina
BB Barbados
BD Bangladeche
BE Bélgica
BF Burquina Faso
BG Bulgária
BH Bahreïn
BI Burundi
BJ Benim
BM Bermudas
BN Brunei
BO Bolívia
BR Brasil
BS Baamas
BT Butão
BV Ilha Bouvet
BW Botsuana
BY Bielorússia
BZ Belize
CA Canadá
CC Ilhas Cocos
CDRepública Democrática do Congo
CFRepública Centro Africana
CG Congo
CH Suíça
CI Costa de Marfim
CK Ilhas Cook
CL Chile
CM Camarões
CN China
CO Colômbia
COMOrganismo com objectivos comerciais
CR Costa Rica
CU Cuba
CV Cabo Verde
CX Ilha Christmas
CY Chipre
CZ República Checa
DE Alemanha
DJ Djibuti
DK Dinamarca
DM Domínica
DORepública Dominicana
DZ Argélia
EC Equador
EDU Organismo relacionado com
a educação
EE Estónia
EG Egipto
EH Sara Ocidental
ER Eritreia
ES Espanha
ET Etiópia
EU Europa
FI Finlândia
FJ Fiji
FKIlhas Falkland (Malvinas)
FM Micronésia
FO Ilhas Faroé
FR França
FXFrança (Território Europeu)
GA Gabão
GB Grã-Bretanha
GD Granada
GE Geórgia
GF Guiana Francesa
GG Guernesey
GH Gana
GI Gibraltar
GL Gronelândia
GM Gâmbia
GN Guiné
GOVOrganismo governamental
GP Guadalupe
GQ Guiné Equatorial
GR Grécia
GS Geórgia do Sul
GT Guatemala
GU Guam (EUA)
GW Guiné-Bissau
GY Guyana
HK Hong Kong
HMIles Heard and McDonald
HN Honduras
HR Croácia
HT Haiti
HU Hungria
ID Indonésia
IE Irlanda
IL Israel
IM Ilha de Man
IN Índia
IOTerritórios Britânicos do Oceano Índico
IQ Iraque
IR Irão
IS Islândia
IT Itália
JM Jamaica
JO Jordânia
JP Japão
KE Quénia
KG Quirguizistão
KH Camboja
KI Quiribati
KM Comores
KNSanto Kitts e Nevis
KP Coreia do Norte
KR Coreia do Sul
KW Kuwait
KY Ilhas Caimão
KZ Cazaquistão
LA Laos
LB Líbano
LC Santa Lúcia
LI Liechtenstein
LK Sri Lanka
LR Libéria
LS Lesoto
LT Lituânia
LU Luxemburgo
LV Letónia
LY Líbia
MA Marrocos
MC Mónaco
MD Moldávia
MG Madagáscar
MH Ilhas Marshall
MK Macedónia
ML Mali
MILOrganismo militar
MM Myanmar
MN Mongólia
MO Macau
MPIlhas Marianne do Norte
MQ Martinica
MR Mauritânia
MS Montserrat
MU Maurícia
MV Maldivas
MW Malawi
MX México
MY Malásia
MZ Moçambique
NA Namíbia
NC Nova Caledónia
NE Níger
NETOrganismo relacionado com Internet
NF Ilhas Norfolk
NG Nigéria
NI Nicarágua
NL Países Baixos
NO Noruega
NP Nepal
NR Nauru
NT Zona Neutra
NU Niue
NZ Nova Zelândia
OM Omã
ORGOrganismo não referenciado
PA Panamá
PE Peru
PFPolinésia francesa
PGPapuásia-Nova Guiné
PH Filipinas
PK Paquistão
PL Polónia
PMSaint-Pierre e Miquelon
PN Pitcairn
PR Porto Rico (EUA)
PSTerritórios palestinianos
PT Portugal
PY Paraguai
PW Palau
QA Catar
RE Reunião
RO Roménia
RU Federação Russa
RW Ruanda
SA Arábia Saudita
SB Ilhas Salomão
SC Seicheles
SD Sudão
SE Suécia
SG Singapura
SH Santa Helena
SI Eslovénia
SJIles Svalbard et Jan Mayen
SKRepública Eslovaca
SL Serra Leoa
SM San Marino
SN Senegal
SO Somália
SR Suriname
STSão Tomé e Princípe
SU União Soviética
SV Salvador
SY Síria
SZ Suazilândia
TCIlhas Turks e Caicos
TD Chade
TFTerritório Austral francês
TG Togo
TH Tailândia
TJ Tajiquistão
TK Tokelau
TM Turquemenistão
TN Tunísia
TO Tonga
TP Timor-Leste
TR Turquia
TTTrindade e Tobago
TV Tuvalu
TW Taiwan
TZ Tanzânia
UA Ucrânia
UG Uganda
UK Reino Unido
UMUS Minor Outlying Islands
US Estados Unidos
UY Uruguai
UZ Uzbequistão
VACidade do Vaticano
VCSão Vicente e Granadinas
VE Venezuela
VGIlhas Virgens Britânicas
VIIlhas Virgens Americanas
VN Vietname
VU Vanuatu
WF Wallis e Futuna
WS Samoa do Oeste
YE Iémen
YT Mayotte
YU Jugoslávia
ZA África do Sul
ZM Zâmbia
ZR Zaire
ZW Zimbabwe
URL
O que é uma URL?
Uma URL (Uniform Resource Locator) é um formato de designação universal para designar um recurso na Internet. Trata-se de uma cadeia de caracteres ASCII imprimíveis que se decompõe em cinco partes :
O nome do protocolo : quer dizer, em certa medida, a linguagem utilizada para comunicar na rede. O protocolo mais utilizado é o protocolo HTTP (HyperText Transfer Protocol), o protocolo que permite trocar páginas Web em formato HTML. Contudo, numerosos outros protocolos são utilizáveis (FTP, News, Mailto, Gopher,…)
Identificador e palavra-passe: permite especificar os parâmetros de acesso a um servidor protegido. Esta opção é desaconselhada porque a palavra-passe é visível na URL
O nome do servidor : Trata-se de um nome de domínio do computador que aloja o recurso pedido. Repare que é possível utilizar o endereço IP do servidor, que torna em contrapartida a URL menos legível.
O número de porta : trata-se de um número associado a um serviço que permite ao servidor saber que tipo de recurso é pedido. A porta associada por defeito ao protocolo é a porta número 80. Assim, quando o serviço Web do servidor é associado ao número de porta 80, o número de porta é facultativo
O caminho de acesso ao recurso : Esta última parte permite ao servidor conhecer o lugar onde o recurso está situado, ou seja, o lugar (directório) e o nome do ficheiro pedido
Uma URL tem então a seguinte estrutura:
Protocolopalavra-passe (facultativa)
Nome do servidorPorta (facultativa se 80)
Caminho
[http://] user:password@ pt.kioskea.net :80 /glossair/glossair.php3
Os protocolos seguintes podem, por exemplo, ser utilizados através da URL :
http , para a consulta de páginas web ftp , para a consulta de sites FTP telnet ,para a ligação a um terminal distante mailto , para o envio de um correio electrónico wais gopher
O nome de ficheiro na URL pode ser seguido de um ponto de interrogação e depois de dados no formato ASCII, tratam-se de dados suplementares enviados em parâmetro de uma aplicação sobre o servidor (um certificado CGI por exemplo). A URL assemelhar-se-á então a uma cadeia de caracteres como esta:
http://pt.kioskea.net/forum/index.php3?cat=1&page=2</code>
A codificação de uma URL
Já que a URL é um meio para enviar informações através da Internet (para enviar dados a um certificado CGI por exemplo), é necessário poder enviar caracteres especiais. Ora, as URL não podem conter caracteres especiais. Além disso, certos caracteres são reservados porque têm um significado (o slash permite especificar um subdirectório, os caracteres & e? servem para o envio de dados por formulários, …). Por último, as URL podem ser incluídas num documento HTML, o que torna difícil a inserção de caracteres como <ou> na URL
É por isso que uma codificação é necessária! A codificação consiste em substituir os caracteres especiais pelo carácter % (ele mesmo um carácter especial) acompanhado do código ASCII do carácter a codificar em notação hexadecimal.
Eis a lista dos caracteres que necessitam uma codificação específica :
Carácter Codificação URL
Tabulação %09
Espaço %20
" %22
# %23
% %25
& %26
( %28
) %29
+ %2B
, %2C
. %2E
/ %2F
: %3A
; %3B
< %3C
= %3D
> %3E
? %3F
@ %40
[ %5B
%5C
] %5D
^ %5E
' %60
{ %7B
| %7C
} %7D
~ %7E
Web - Introdução à World Wide Web
Introdução à World Wide Web
Chama-se “Web” (nome inglês que significa “tela”), contracção de “World Wide Web” (daí o acrónimo www), a uma das possibilidades oferecidas pela rede Internet de navegar entre documentos ligados por relações hipertexto.
O conceito do Web foi craido no CERN (Centro Europeu de Investigação Nuclear) em 1991 por uma equipa de investigadores a que pertencia Tim-Berners LEE, o inventor do conceito de hiperligação, considerado hoje como o pai fundador da Web.
O princípio de web assenta na utilização de hiperligações para navegar entre documentos (chamados “páginas web”) graças a um software chamadonavegador(ou em inglês browser). Uma página web é assim um simples ficheiro texto escrito numa linguagem de descrição (chamada HTML), permitindo descrever a formatação do documento e incluir elementos gráficos ou ligações para outros documentos com a ajuda de balizas.
Para além das relações que ligam documentos formatados, a web ganha todo o sentido com oprotocolo HTTP que permite vincular documentos alojados por computadores distantes (chamados servidores web, em oposição ao cliente que representa o navegador). Na Internet, os documentos são assim localizados por um endereço único, chamado URL, permitindo localizar um recurso em qualquer servidor da rede Internet.
O que é um site web ?
Um síte web (também chamado síte Internet ou página pessoal no caso de um síte Internet com objectivos pessoais) é um conjunto de ficheiros HTMLarmazenados num computador conectado permanentemente à Internet e alojando as páginas web (servidor web).
Um síte web está habitualmente estruturado em redor de uma página central, chamada “página inicial” e propondo ligações para o conjunto das outras páginas alojadas no mesmo servidor, e às vezes relações “externas”, ou seja, para páginas alojadas noutro servidor.
Um URL apresenta-se sob a forma seguinte :
http://www.kioskea.net/www/www-intro.php3</code>
Estudemos mais em detalhe este endereço :
http:// indica que desejamos navegar na web através doprotocolo HTTP, o protocolo utilizado por defeito para navegar nas páginas web. Existem outros protocolos, correspondente a outros usos da Internet.
www.kioskea.net corresponde ao endereço do servidor que aloja as páginas web. Por
convenção, o servidor web possui um nome que começa por www., para mostrar bem que se trata de servidores dedicados ao uso da web, e sobretudo com uma preocupação de coerência a fim de permitir a memorização do endereço. A segunda parte deste endereço é chamada nome de domínio. Um síte web pode assim ser alojado em vários servidores, pertencendo contudo a um mesmo domínio: www.kioskea.net, www2.kioskea.net, intranet.kioskea.net, etc.
/www/www-intro.php3 permite indicar a localização do documento na máquina. No caso
presente, trata-se do ficheiro www-intro.php3 situado no directório www
top related