estudos de redes - fev11(importante)

92
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”).

Upload: jader-santiago

Post on 29-Jun-2015

174 views

Category:

Documents


1 download

DESCRIPTION

Introdução a Redes de Computadores

TRANSCRIPT

Page 1: Estudos de Redes - fev11(IMPORTANTE)

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”).

Page 2: Estudos de Redes - fev11(IMPORTANTE)

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

Page 3: Estudos de Redes - fev11(IMPORTANTE)

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.).

Page 4: Estudos de Redes - fev11(IMPORTANTE)

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

Page 5: Estudos de Redes - fev11(IMPORTANTE)

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…

Page 6: Estudos de Redes - fev11(IMPORTANTE)

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 -->

Page 7: Estudos de Redes - fev11(IMPORTANTE)

<--

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.

Page 8: Estudos de Redes - fev11(IMPORTANTE)

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

Page 9: Estudos de Redes - fev11(IMPORTANTE)

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

Page 10: Estudos de Redes - fev11(IMPORTANTE)

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

Page 11: Estudos de Redes - fev11(IMPORTANTE)

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,

Page 12: Estudos de Redes - fev11(IMPORTANTE)

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

Page 13: Estudos de Redes - fev11(IMPORTANTE)

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…

Page 14: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 15: Estudos de Redes - fev11(IMPORTANTE)

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

Page 16: Estudos de Redes - fev11(IMPORTANTE)

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

Page 17: Estudos de Redes - fev11(IMPORTANTE)

<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.

Page 18: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 19: Estudos de Redes - fev11(IMPORTANTE)

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

Page 20: Estudos de Redes - fev11(IMPORTANTE)

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

Page 21: Estudos de Redes - fev11(IMPORTANTE)

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

Page 22: Estudos de Redes - fev11(IMPORTANTE)

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

Page 23: Estudos de Redes - fev11(IMPORTANTE)

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

Page 24: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 25: Estudos de Redes - fev11(IMPORTANTE)

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

Page 26: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 27: Estudos de Redes - fev11(IMPORTANTE)

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

Page 28: Estudos de Redes - fev11(IMPORTANTE)

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:

Page 29: Estudos de Redes - fev11(IMPORTANTE)

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

Page 30: Estudos de Redes - fev11(IMPORTANTE)

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)

Page 31: Estudos de Redes - fev11(IMPORTANTE)

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.)

Page 32: Estudos de Redes - fev11(IMPORTANTE)

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?

Page 33: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 34: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 35: Estudos de Redes - fev11(IMPORTANTE)

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:

Page 36: Estudos de Redes - fev11(IMPORTANTE)

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

Page 37: Estudos de Redes - fev11(IMPORTANTE)

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

Page 38: Estudos de Redes - fev11(IMPORTANTE)

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

Page 39: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 40: Estudos de Redes - fev11(IMPORTANTE)

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 :

Page 41: Estudos de Redes - fev11(IMPORTANTE)

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:<[email protected]>

S: 250 OK C: RCPT TO:<[email protected]>

S: 250 OK C: RCPT TO:<[email protected]>

S: 550 No such user here C: DATA

Page 42: Estudos de Redes - fev11(IMPORTANTE)

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: [email protected]

Identificação do endereço do remetente

RCPT TO:RCPT TO: [email protected]

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.

Page 43: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 44: Estudos de Redes - fev11(IMPORTANTE)

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

Page 45: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 46: Estudos de Redes - fev11(IMPORTANTE)

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

Page 47: Estudos de Redes - fev11(IMPORTANTE)

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

Page 48: Estudos de Redes - fev11(IMPORTANTE)

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

Page 49: Estudos de Redes - fev11(IMPORTANTE)

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

Page 50: Estudos de Redes - fev11(IMPORTANTE)

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

Page 51: Estudos de Redes - fev11(IMPORTANTE)

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

Page 52: Estudos de Redes - fev11(IMPORTANTE)

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

Page 53: Estudos de Redes - fev11(IMPORTANTE)

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

Page 54: Estudos de Redes - fev11(IMPORTANTE)

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: [email protected] 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

Page 55: Estudos de Redes - fev11(IMPORTANTE)

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

Page 56: Estudos de Redes - fev11(IMPORTANTE)

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

Page 57: Estudos de Redes - fev11(IMPORTANTE)

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:

Page 58: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 59: Estudos de Redes - fev11(IMPORTANTE)

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

Page 60: Estudos de Redes - fev11(IMPORTANTE)

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).

Page 61: Estudos de Redes - fev11(IMPORTANTE)

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

Page 62: Estudos de Redes - fev11(IMPORTANTE)

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.

Page 63: Estudos de Redes - fev11(IMPORTANTE)

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

Page 64: Estudos de Redes - fev11(IMPORTANTE)

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

Page 65: Estudos de Redes - fev11(IMPORTANTE)

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 :

Page 66: Estudos de Redes - fev11(IMPORTANTE)

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

Page 67: Estudos de Redes - fev11(IMPORTANTE)

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

Page 68: Estudos de Redes - fev11(IMPORTANTE)

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

Page 69: Estudos de Redes - fev11(IMPORTANTE)

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

Page 70: Estudos de Redes - fev11(IMPORTANTE)

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

Page 71: Estudos de Redes - fev11(IMPORTANTE)

É 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

Page 72: Estudos de Redes - fev11(IMPORTANTE)

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