Ao contrário do que muitos podem pensar, o TCP/IP é na verdade um
Protocol Suíte, ou seja, um conjunto de protocolos. O TCP/IP na verdade
é a sigla de Transmission Control Protocol / Internet Protocol.
Nos anos 70, a Advanced Research Projects Agency viu a necessidade de
criar uma tecnologia que pudesse oferecer duas características
principais a uma rede de computadores:
Packet Switching: comutação de pacotes;
InternetWorking: Interconexão de redes.
Esta rede foi chamada de ARPANET e ela foi o ponto de partida para
chegarmos à Internet.
Não existe uma empresa que tenha os direitos sobre o TCP/IP, sendo que a
Internet Architeture Board (IAB) é formada por um grupo de
profissionais, divididos em grupos de pesquisa e desenvolvimento
chamadas de Task Forces, sendo que cada um destes grupos tem a
determinação de desenvolver o TCP/IP sobre um determinado aspecto de
tecnologia.
Quando falamos em comutação de pacotes, associamos a duas formas
principais de realizar a conexão entre computadores:
Comutação de circuito (Circuit-Switching);
Comutação de pacote (Packet-Switching).
Um exemplo clássico de comutação de circuito ocorre quando você se
conecta através do seu micro (via Home Banking através de um número
telefônico exclusivo para este serviço) com o seu banco para efetuar
operações bancárias, como por exemplo, solicitar um talão de cheques.
Este tipo de conexão possui uma grande vantagem e outra grande
desvantagem:
Vantagem
Desvantagem
Sistema menos sujeito a falhas. Após a conexão estabelecida entre
as partes, o canal que é aberto para a comunicação não estará
acessível a outro equipamento, oferecendo assim um alto grau de
confiabilidade.
A
falta de flexibilidade, pois se ocorrer a necessidade de
comunicação com outro equipamento/sistema, será necessário a troca
de circuito de comunicação.
Já na
comutação de pacotes, os equipamentos que estiverem participando da
comunicação na rede estarão ligados através de Routers (mesmo circuito)
e, desta forma, qualquer um dos participantes da "conversa", poderão
trocar informações com qualquer um dos demais participantes.
O nome
comutação de pacotes se dá pelo fato de que, as mensagens que são
enviadas pela rede, devem ser quebradas em pacotes (Packets). Este
procedimento é realizado para melhorar a performance da comunicação.
Estes pacotes são formados por um endereço de origem, um endereço de
destino, a sequência do pacote na quebra da mensagem total. Esta
sequência ou numeração é necessária para que o destinatário possa
ordenar os pacotes e montar o quebra-cabeça para em seguida poder
interpretar o conteúdo da mensagem.
Algumas
redes (principalmente as de maior parte) se utilizam de Packet Switches
(equipamento de comutação de pacotes) para gerenciar a distribuição dos
Packets no processo de comunicação.
Veja a
seguir um exemplo gráfico do processo de comutação de pacotes:
Observe que
no gráfico acima, apesar do computador B estar "recebendo" a transmissão
dos pacotes do computador A, ele simplesmente os ignora, pois estes são
destinados ao computador C.
Este tipo de
tecnologia, tem como uma das grandes vantagens a possibilidade de várias
conexões, ou seja, um mesmo computador poderá trocar pacotes com
diversos computadores.
Nesta
tecnologia, a principal desvantagem é a performance. Pelo fato do
circuito estar compartilhando a sua comunicação com diversas máquinas, a
velocidade de transmissão é prejudicada.
Vamos falar
um pouco agora sobre a InternetWorking, ou seja, tecnologia que permite
a conexão de diferentes redes através de um sistema de roteamento de
mensagens. Este procedimento sobre o TCP/IP opera de forma independente
do aplicativo que está sendo executado pelos equipamentos que participam
da rede. O TCP/IP oculta detalhes físicos e permite maior flexibilidade
na comunicação.
Através do
InternetWorking, as redes são ligadas por equipamentos que tem o nome de
Roteadores, sendo estes responsáveis pelo tráfego dos pacotes entre os
equipamentos que participam da comunicação, mesmo que estes não estejam
fisicamente ligados entre si.Em outras palavras, esta tecnologia permite
a formação de uma WAN (grande rede, formada pela interligação de várias
redes locais). Veja a seguir um esquema gráfico com o uso da tecnologia
em questão:
Observe que, se o micro A01 da rede A, desejar enviar uma mensagem a
outro micro que não esteja presente na sua rede física, como por exemplo
o micro B34 da rede B, O Roteador 01 sabe que este micro está conectado
ao Roteador 02, logo este envia os pacotes ao roteador 02, responsável
pela distribuição de pacotes aos micros da Rede B.
Agora surge
um problema ... O micro da rede B que irá receber pacotes do micro da
rede A, está operando na mesma plataforma ou sistema operacional? Neste
caso entra em ação o que chamamos de interoperabilidade, ou seja, a
possibilidade de equipamentos que utilizam plataformas diferentes,
conseguirem trocar mensagens entre si, sem que para isso ocorra perda de
dados.
Isso ocorre
com frequência na Internet. Você pode estar utilizando um micro que
utiliza o Windows e enviar um e-mail para um amigo que utiliza um Apple
que por sua vez irá encaminhar a mesma mensagem para um outro conhecido
que opera sobre a plataforma Linux. Estas três pessoas, apesar de
utilizar diferentes sistemas operacionais, estão "vendo" a mesma
mensagem.
Na próxima
aula iremos estudar sobre as camadas do TCP/IP bem como seus protocolos
de aplicação.
O TCP/IP é
dividido em quatro camadas, conforme podemos observar na figura a
seguir:
Aplicação
Transporte
Internet
Interface com a Rede
Sendo que,
se compararmos com o modelo OSI. teríamos:
Camada de
aplicação do TCP IP é equivalente as camadas de aplicação,
apresentação e sessão do modelo OSI;
Camada de
transporte do TCP/IP é equivalente a camada de transporte do modelo
OSI;
Camada de
Internet do TCP/IP é equivalente a camada de rede do modelo OSI;
Camada de
Interface de rede do TCP/IP é equivalente as camadas de Link de dados
e física do modelo OSI.
Mas o porque
das camadas? Cada uma delas é responsável por uma determinada tarefa
assim como a de fornecer informações e prestar serviços à camada
imediatamente superior.
Veja a
seguir um exemplo de comunicação entre dois computadores, imaginando que
os usuários de ambos estivessem utilizando um programa de comunicação:
O usuário
do computador "aprendaemcasa" digita uma mensagem a ser enviada
ao usuário do computador "aluno João";
O programa
de comunicação que está sendo utilizado, prepara um pacote que contém:
- o endereço do remetente; - o conteúdo da mensagem; - o endereço do
destinatário;
Esta
mensagem é colocada em uma caixa de saída;
Nesta
caixa de saída, o pacote que deverá ser enviado é quebrado em diversos
pacotes numerados e de mesmo formato;
Um a um os
pacotes quebrados são enviados para a porta de comunicação;
Um
"aplicativo" constante na porta de comunicação vai recebendo pacote a
pacote e, envia para a máquina de destino (caso esteja esta presente
na mesma rede física) ou para um roteador (caso esteja esta em outra
rede física);
A placa de
rede do computador "aluno João" detecta pacotes que são enviados a ela
(devido ao endereço de destino) e envia estes para a porta de
comunicação;
Esta porta
de comunicação verifica a integridade do pacote e coloca os mesmos em
uma caixa de entrada;
A caixa de
entrada vai organizando os pacotes segundo a sua numeração e aguarda o
recebimento de todos os pacotes;
Os pacotes
(quebrados) são remontados e foram novamente um único pacote
principal;
O programa
alerta ao usuário que este possui uma nova mensagem em sua caixa de
entrada;
O usuário
do "computador João" abre a mensagem enviada pelo computador "aprendaemcasa".
Alguns
autores consideram no TCP/IP uma quinta camada, que tem a finalidade de
representar o Hardware do sistema de rede utilizado.
Camada
Função
Camada de Hardware
Nesta
camada é realizada a comunicação física da rede
Camada de Interface de rede
Aqui
são realizadas duas funções básicas:
Converter os pacotes em frames compatíveis com o tipo de rede
que está sendo utilizada
Conversão de endereços IP em endereços físicos da rede
Camada Internet
Ponte
entre as camadas superiores (voltadas para aplicativos) e as
camadas inferiores (orientadas ao Hardware). Aqui ocorre o
roteamento de pacotes na rede além da verificação de integridade
dos mesmos.
Camada de transporte
Executa operação conhecida por Host-to-Host, ou seja, possibilita
a comunicação entre programas aplicativos através da execução das
seguintes tarefas:
Controle do fluxo de dados;
Quebra da mensagem em pacotes;
Classificação dos pacotes recebidos;
Ordenação dos pacotes recebidos;
Camada de aplicação
Responsável pelo cumprimento das regras de comunicação dos
programas de de aplicação que utilizam o TCP/IP. Exemplo: como um
programa de e-mail não consegue navegar por páginas da Web? A
resposta é que este não possui o protocolo de navegação, apenas o
de envio e recebimento de e-mails.
Cada uma das
camadas acima estudadas possuem seus próprios protocolos para que possam
executar suas tarefas. Veja o quadro a seguir:
Camada
Protocolos
Observações
Internet
ICMP
Internet Control Message Protocol - utilizado para a troca de
mensagens de controle de erro.
Transporte
TCP
UDP
Executam funções das camadas de sessão e transporte do modelo OSI
Aplicação
TELNET
HTTP
SMTP
FTP
Utilizado para Login remoto
Word Wide Web
Envio de correio eletrônico
Transferência de arquivos
Para que
você possa entender melhor este mecanismo, vamos imaginar o seu
navegador Web, durante o seu passeio pela Internet, vejamos como é a
operação do mesmo:
O seu navegador Web envia uma mensagem ao servidor WWW, solicitando o
processamento do formulário de cadastramento de alunos do site
aprendaemcasa.com.br. Neste momento está em uso o protocolo de aplicação
HTTP;
O protocolo
de aplicação HTTP, através do uso do protocolo de transporte TCP, sendo
que o TCP da sua máquina entra em contato com o TCP da máquina do
destinatário, estabelecendo assim uma comunicação entre as partes;
Após a
comunicação estabelecida, o TCP irá dividir a mensagem em pacotes que
possuirão um cabeçalho de controle que será enviado ao destinatário,
através dos serviços do IP;
O Protocolo
Internet IP irá acrescentar a este pacote o seu próprio cabeçalho e
transforma-lo em um datagrama;
O Protocolo
Internet IP irá agora obter o conhecimento sobre onde enviar o datagrama,
ou seja, se está sendo enviado para a mesma rede física ou para outro
equipamento ligada a uma rede distinta (neste caso através do uso de um
roteador). Para isso é incluso no datagrama o que chamamos de Time to
Live, ou seja, o tempo de vida deste datagrama, evitando assim um loop
eterno caso este datagrama não consiga alcançar o seu destino;
Agora, a
interface de rede tem a função de formatar os datagramas através de
unidades de transmissão. Estas unidades de transmissão são conhecidas
como frames que por sua vez será enviado ao meio físico.
Neste ponto,
o frame será recebido pelo destinatário, ocorrendo então os seguintes
passos:
O frame chega a interface de rede. Esta verifica a integridade do mesmo
e estando tudo em ordem, este será enviado ao protocolo IP;
O protocolo Internet IP verifica verifica se o endereço de destino do
datagrama é o seu endereço e, sendo positiva a resposta, será realizada
a verificação de qual protocolo de tranporte o datagrama é compatível
para o envio de seu conteúdo ao mesmo para o processamento deste pela
camada superior;
O TCP recebe o segmento e realiza uma verificação de rotina. Esta
verificação é denominada "TCP Checksum", colocando também o segmento em
sua sequência correta, já que o mesmo está sendo recebido em pedaços.
Após este procedimento ser concluído com sucesso, o remetente do
segmento recebe um sinal de positivo. Este sinal é conhecido como
Acknowledgement e tem o objetivo de informar ao remetente do segmento
que "este" está ok e informar o número do próximo segmento a ser
transmitido.
Quando
é recebido o último segmento, a mensagem é remontada e enviada ao
aplicativo de destino;
Este aplicativo (servidor WWW), através do protocolo HTTP processa o
pedido e envia a mensagem de Ok como resposta.
Aqui,
observe que foi realizada um circuito virtual (conforme estudamos a
respeito no módulo 2 de aula do curso de redes e windows 2000) entre os
comunicantes.
No próximo
módulo iremos estudar sobre endereçamento.
Nesta aula
vamos falar sobre endereçamento. Como você faz para enviar uma carta a
um amigo? Necessita além do nome do mesmo, o endereço para especificar o
local de entrega. O mesmo acontece com a entrega de pacotes ou envelopes
em redes de computadores.
Os endereços
das máquinas é armazenado em uma primeira instância na placa de rede do
computador. Este endereço é único para cada placa de rede produzida e
este controle é realizado pelo IEEE.
O endereço
físico do equipamento também é conhecido pelo nome de Média Access
Control Address.
Você saberia
como extrair o endereço da sua máquina rede? Ou melhor, o endereço da
placa de rede de seu equipamento. Existem diversas formas de se obter o
mesmo. No ambiente Windows, existe um programa conhecido pelo nome de
WINIPCFG.EXE e que tem esta função.
Para
verificar o endereço de sua placa de rede, proceda da seguinte forma:
1. Clique na
opção de menu INICIAR;
2. No menu que é exibido clique em EXECUTAR;
3. Na caixa de edição ABRIR, digite WINIPCFG.EXE, conforme mostra a
figura a seguir e em seguida clique em OK;
4. Após este
procedimento, será exibida uma janela parecida com a que segue:
Além do
endereço físico, temos também outros tipos de endereços, que iremos
estudar a seguir. O primeiro deles é o endereço de BroadCast.
Em
determinados momentos, pode se tornar necessário o envio de uma mensagem
para todos os endereços de uma determinada rede física. Quando isso se
faz necessário é usado o endereço de BroadCast, um endereço especial e
conhecido por todas as máquinas da mesma rede física. Quando este
endereço é acionado como destino de uma mensagem, todas as máquinas irão
receber o conteúdo.
Tal
procedimento nos leva a afirmar que uma estação de rede tem na verdade
dois endereços:
Endereço físico (seu próprio e exclusivo endereço);
Endereço de BroadCast
Imagine uma
rua qualquer que, no total possui 40 casas. Cada casa tem o seu número
de identificação (endereço físico), porém todas as casas estão
localizadas na mesma rua (endereço de BroadCast), sendo assim, cartas
enviadas para a rua serão distribuídas em todas as casas que fazem parte
desta.
Em outras
situações, você poderá ter a necessidade de enviar mensagens apenas a um
grupo de estações de uma determinada rede. Nestes casos temos um outro
endereço conhecido por Endereço de MultiCast.
Ao contrário
do BroadCast (que considera todas as máquinas de uma mesma rede física),
o MultiCast especifica grupos de máquinas.
Imagine na
mesma rua, onde queremos apenas enviar cartas para as casas que não são
alugadas (aqui temos um grupo especial, um MultiCast).
O endereço
físico tem 48 bits. Caso estejam todos estes 48 bits ligados, indica um
endereço de BroadCast. Vamos agora comparar os três endereços citados
com um prédio habitacional. O prédio é a rede local, onde cada
apartamento tem um endereço físico. Caso você queira enviar uma carta a
todos os moradores do prédio (uma mensagem a todas as máquinas da rede),
irá utilizar o endereço de BroadCast. Caso queira enviar uma carta
apenas aos moradores do quarto andar para notificar uma reforma no piso
que dá acesso aos apartamentos, irá utilizar o endereço de MultiCast.
Veja o gráfico a seguir:
No padrão
Ethernet o Bit de mais baixa ordem do primeiro byte do endereço
determina se é um endereço físico ou um endereço multcast. Veja o
esquema a seguir:
Endereço físico
X0.XX.XX.XX.XX.XX
Endereço Multicast
X1.XX.XX.XX.XX.XX
É
importante lembrar que nem todos os tipos de redes suportam endereços de
MultiCast físicos, assim sendo, as mensagens deverão ser enviadas uma a
uma para cada um dos endereços físicos que devem receber os pacotes ou
envelopes.
Através
deste processo, é de conhecimento que o IP realiza o endereçamento
das estações em redes TCP/IP, através de um esquema de endereçamento
lógico que absorve as características da rede física onde está atuando.
O Software
TCP/IP tem o objetivo de formar redes virtuais através de redes
heterogêneas. Isso se torna possível pela sua formação que se dá por um
conjunto de especificações de protocolos que visam a padronização das
comunicações entre equipamentos de diferentes características e para que
isso seja possível, a camada de internet do TCP/IP possui um
endereçamento próprio, denominado ENDEREÇO IP, que se trata de um
endereço virtual (não gravado fisicamente na placa de rede -endereço
físico-) e, cada equipamento passa a ter o seu equipamento virtual e, o
IP deve ter condições de realizar um mapeamento entre os endereços
IP e os endereços físicos das demais estações da rede.
Vamos dar um
exemplo claro, a sua conexão com a Internet. Ao se conectar, você passa
a utilizar um endereço IP fornecido pelo seu provedor durante o seu uso.
Na próxima
aula iremos estudar sobre os endereços IPs.
Para um
computador ou roteador ser identificado na rede TCP/IP, este receberá um
endereço IP, formado por quatro bytes. Veja um exemplo a seguir de
endereço IP:
172.123.0.1
O endereço
IP é dividido em duas partes:
Endereço
de rede;
Endereço
do computador.
Esta divisão
de endereços se torna necessária pelo fato do TCP/IP estabelecer para a
comunicação entre equipamentos os circuitos virtuais entre redes, assim
sendo, será necessário detectar além do endereço do micro, o endereço da
rede na qual este está conectado.
Os endereços
IPs ainda são divididos em classes, de acordo com o tamanho da rede na
qual o equipamento estiver ligado. A grande maioria dos autores, divide
o endereço IP em três classes distintas:
Classe
A - rede com mais de 16 milhões de computadores;
Classe
B - rede com até 65.536 computadores;
Classe
C - rede com até 255 computadores.
Conforme
vimos, o endereço IP é composto por 32 bits. os três primeiros bits
identificam a classe do endereço IP e, de acordo com a classe na qual é
enquadrado, usaremos x bits para identificar a rede e o computador.
Desta forma, poderemos montar o seguinte mapa de endereço IP:
Formato do
endereço IP para a Classe A
0
8
16
24
32
0
Rede
Computador
Formato do
endereço IP para a classe B
0
8
16
24
32
1
0
Rede
Computador
Formato do
endereço IP para a classe C
0
8
16
24
32
1
1
0
Rede
Computador
Assim sendo,
ao observar os três primeiros bits de um endereço IP poderemos
identificar a qual classe o equipamento pertence, seu endereço físico e
endereço da rede. Veja a tabela a seguir:
Classe
endereço inicial
endereço final
A
0.1.0.0
126.0.0.0
B
128.0.0.0
191.255.0.0
C
192.0.1.0
223.255.255.0
Você deve
então, com base no que observou na tabela acima estar perguntando: Mas e
o endereço que se inicia com 127.x.x.x não existe?
Existem
alguns endereços IPs especiais, entre eles o 127.0.0.1 que representa o
seu próprio equipamento. Em um teste de comunicação, ao enviar uma
mensagem para o endereço 127.0.0.1 você estará na verdade enviando uma
mensagem para o seu próprio equipamento.
Outros
endereços considerados especiais são os endereços de broadcast.
Deveremos lembrar que neste caso, o IP também irá se utilizar das
capacidades da rede física para implementar as suas funções. Assim
sendo, é comum em endereços TCP/IP que o dígito zero signifique ESTE e o
digito um signifique TODOS. Com base nesta lógica, podemos concluir que
temos dois tipos de endereços de BroadCast:
Limitado;
Direcionado.
Na próxima
aula iremos tratar do assunto "máscaras da Sub-rede".
Você já
ouviu falar em Subnet Mask? Nada mais é do que uma máscara de redes, em
outras palavras é a técnica que permite a divisão de uma rede em várias
sub-redes, sendo que todos os equipamentos irão compartilhar a mesma
faixa de endereço IP. Mas como isso é possível?
Para
alcançar tal objetivo, o procedimento é acrescentar alguns bits ao
endereço da rede, possibilitando assim a identificação de de mais de uma
sub-rede. Mas de onde iremos "extrair" esses bits a mais?
Os bits
serão extraídos da parte reservada do endereço do computador, assim
sendo, podemos concluir que as sub-redes terão menos endereços IPs do
que as redes originais. Siga o raciocínio a seguir:
O endereço
IP possui duas partes:
Endereço
de rede;
Endereço
do computador.
Veja um
endereço IP classe B. Nele, 16 Bits são dedicados ao endereço da rede e
16 Bits são dedicados ao endereço do computador. Ao utilizar alguns bits
da parte do endereço do computador, se torna possível gerar uma
classificação para caracterizar a sub-rede. Isso se torna possível pois
os roteadores que compõe todo o sistema não verificam a parte do
endereço do computador, ou seja, eles apenas se preocupam com o endereço
da rede, desta forma, eles não precisam saber qual é o endereço da
sub-rede, sendo que esta tarefa passa a ser a do administrador do
sistema. Veja tal processo no gráfico a seguir, onde teremos um endereço
IP comum e um com o endereço de sub-rede, respectivamente:
Rede
Rede
Computador
Computador
.
Rede
Rede
Sub-rede
Computador
Utilizando
esta tecnologia, teremos em cada máquina um endereço de rede único e que
seria "enxergado" por todo o sistema, além da classificação que
apontaria a sub-rede para onde a mensagem deve ser enviada.
Mas qual o
limite no emprego deste recurso? Neste caso em específico, poderíamos
ter até 254 sub-redes sendo que cada uma com 254 computadores
participantes.
Existem
outras técnicas na qual não será utilizada um byte inteiro para a
especificação da sub-rede. Nesta técnica, será utilizado apenas 3 bits
do endereço do computador. Observe a figura a seguir:
Rede
Rede
Sub
Rede
Computador
Computador
Utilizando-se desta formatação, teremos um total de 6 sub-redes com até
8190 computadores ligados em cada uma delas.
Você poderá
se utilizar de fórmulas para o cálculo do número de sub-redes e de
computadores em cada uma das sub-redes. Veja a seguir:
Fórmula
Detalhes
Para
cálculo de sub-redes:
SR = 2x - 2
onde x
corresponde ao número de bits destinados ao endereço da sub-rede.
Para
cálculo do número de máquinas:
NM = 2x - 2
onde y
corresponde ao número de bits destinados ao endereço do
computador, sendo que este número já deverá estar subtraído do
número de bits reservados ao cálculo da sub-rede.
Na aula
passada estudamos as máscaras das sub-redes. Aqui vamos estudar sobre
endereços virtuais e endereços físicos. Conforme estudamos até o
momento, podemos definir que:
O endereço
físico está gravado na placa de rede que está conectada a um
determinado equipamento;
O endereço
virtual é o endereço IP.
Para que a
comunicação física ocorra normalmente com os dados enviados virtualmente
(através das camadas de Internet, Transporte e aplicação do TCP/IP), é
necessário o mapeamento de endereços virtuais sobre os endereços
físicos.
Após os
dados serem recebidos, a camada de interface de rede será responsável
por administrar o endereço físico e o tipo de rede que está sendo
utilizada, assim sendo, será necessário gerar frames contendo o endereço
físico do destinatário. Este procedimento é realizado por dois
protocolos que fazem parte desta camada:
ARP -
Address Resolution Protocol
RARP
ARP
Este
protocolo gera um mapeamento dinâmico possibilitando que as estações que
fazem parte do processo tenham como "identificar" os endereços físicos
das outras estações participantes.
Na interface
de rede, os equipamentos que fazem parte trabalham com ARP, sendo que
este tem a função de armazenar em uma área temporária (Cache do ARP), os
endereços virtuais (IPs) e físicos (gravados na placa de rede) das
estações que se comunicam (imagine este cache do ARP como aquele menu do
WORD ... Últimos documentos ou Documentos Recentes).
Ao se tentar
enviar um pacote, primeiro é pesquisado dentro do cache do ARP o
endereço IP para se obter o respectivo endereço físico. Achando o mesmo
o pacote é formatado e enviado, caso contrário, será enviada uma
mensagem ARP contendo o endereço de Broadcast e solicitando o endereço
físico de um determinado endereço IP. A estação que possui aquele
endereço IP irá enviar de forma direta uma resposta contendo seu
endereço físico, possibilitando assim ao remetente que envie a sua
mensagem e automaticamente atualizando o seu Cache ARP. Veja abaixo um
pequeno esquema gráfico deste procedimento:
Obs.: A
estação 1.1.1.2 bem como a estação 1.1.1.0, informam para a rede além do
seu endereço virtual, também o seu endereço físico.
O cache ARP
é temporário e enquanto o endereço da estação C constar neste cache,
será evitado o congestionamento da rede e, por ser temporário, mesmo que
ocorra a mudança da placa de rede da estação C (por exemplo), a conexão
será reestabelecida para a atualização do cache ARP.
O Windows
traz um utilitário que possibilita administrar o cache ARP. Para
executar este utilitário, basta abrir uma janela de terminal Windows e
digitar o comando ARP seguido de um parâmetro de um determinado fim.
Veja o
gráfico a seguir:
Por exemplo,
se você digitar por exemplo, ARP -a, terá uma listagem de todo o
conteúdo armazenado no cache. Provavelmente ao ligar seu equipamento e
sem ter mantido contato com qualquer integrante da rede, verá uma
mensagem do tipo "Nenhuma entrada ARP foi encontrada".
Na próxima
aula iremos trabalhar mais com o utilitário ARP bem como iniciar o
estudo sobre o RARP.
Neste
módulo de aula vamos falar um pouco mais sobre o ARP e sua sintaxe.
Ao ligar o
equipamento e digitar no prompt de comando ARP -A, o cache ARP estará
vazio e nenhum informação nos será repassada, porém esta informação
assará a ser diferente quando visitarmos um site da Web por exemplo.
Veja o gráfico a seguir, onde disparamos o ARP -A, após visitar o site
www.aprendaemcasa.com.br:
Aqui, este
utilitário nos deu as seguintes informações:
Interface
200.206.183.128 - Endereço IP associado a interface de rede que
estamos utilizando
Endereço
Internet - Endereço IP da estação com a qual estabelecemos contato
Endereço
físico - Endereço Ethernet de 48 bits que representa o endereço
físico do endereço IP
Tipo -
Endereço dinâmico encontrado através de mensagens Broadcast ARP.
Alguns dos
parâmetros mais comuns no uso do aplicativo ARP são:
-a ....
lista o conteúdo do cache ARP.
-s ....
Adiciona uma entrada permanente no cache ARP
-d ....
Remove uma entrada do cache ARP
-n ....
no caso de equipamentos Multihomed, este parâmetro poderá indicar o
endereço da interface de rede.
Mas o que é
um equipamento Multihomed? Neste caso, o TCP/IP poderá se comunicar com
outras redes, pelo fato de existir mais de uma camada de interface de
rede conectado, um exemplo típico deste processo é quando temos um
computador ligado à Internet e este provê acesso aos demais computadores
plugados nele (uma espécie de compartilhamento de conexão, já possível
no Windows 98 segunda edição).
Porém está
faltando estudarmos o RARP que poderemos definir com a engenharia
reversa do ARP, ou seja, poderemos através deste obter o nosso próprio
endereço IP ao invés de obter o endereço físico de outras estações na
qual queremos estabelecer contato. Em resumo, através do RARP poderemos
conhecer o endereço IP a partir de um endereço físico.
As redes
possuem servidores especiais, conhecidos por servidores RARP, que recebe
Broadcast RARP de uma determina estação que deseja conhecer o seu
endereço IP através de seu endereço físico. Estes protocolos (ARP e RARP)
operam no nível de protocolo da interface de rede.
Na próxima
aula iremos estudar sobre DNS (Domain Name System).
Quando
queremos acessar um endereço da Internet, usamos nomes ao invés de
endereços IPs, o que facilita a vida do internauta. O mesmo
procedimento é realizado em uma Intranet, desta forma facilitando o
acesso a um determinado conteúdo.
Você
provavelmente está perguntando ... O endereçamento de redes TCP/IP se
dá através do endereço IP, então como é possível acessar um
determinado endereço através do uso de nomes? A resposta é simples,
através de DNS (Domain Name System).
Primeiramente utilizávamos o arquivo HOSTS (sem extensão), localizado
no diretório WINDOWS para sistemas com o Windows 95 ou em sistemas
UNIX. Veja abaixo um exemplo de arquivo HOSTS e seu formato:
# Endereço IP
Nome do computador
132.172.0.1
aprendaemcasa_serv
132.172.0.2
aprendaemcasa_term1
132.172.0.3
aprendaemcasa_term2
Este sistema só é utilizado em intranets de pequeno porte (no inicio a
Internet também utilizava este sistema), pois atualmente é impossível
utilizar este procedimento pelo número de equipamentos ligados na
rede, sendo assim surgiu o sistema de nomes de domínios (DNS).
Através desta tecnologia, o nome de domínios é dividido em níveis,
conforme podemos observar na sintaxe a seguir:
[nível.local].[nível de rede].[nível de organização].[nível de país]
Neste
esquema, a divisão de nível mais alto é a do país e a mais baixo é a
do local. Neste esquema teremos diversas redes para cada tipo de
organização, sendo que estas poderão estar distribuídas de forma
independente em diversos locais (nível de país).
Exemplos:
aprendaemcasa.com.br. Neste domínio, temos o nível de rede como "aprendaemcasa",
o nível de organização do tipo comercial (.com) e o nível de país (BR)
estabelecido para o Brasil.
Mas
como o sistema irá transformar um nome de domínio em um endereço IP?
Esta transformação se dá pelo uso de Servidores de Nomes de Domínio,
sendo que estes servidores são alimentados com todas as entradas das
máquinas que estão sob o seu domínio somando aqui os endereços
de outros servidores de nomes, servindo assim como uma espécie de
catálogo telefônico, porém ao invés de nomes de pessoas e seus
respectivos números telefônicos, teremos nomes de domínios e seus
respectivos endereços IP.
Os
servidores de nomes de domínios também obedecem uma hierarquia para a
coordenação destes procedimentos, ou seja, cada servidor de nomes se
torna responsável pelos endereços IPs das máquinas que estão sob
o seu domínio e, caso seja necessário o controle de um domínio de alto
nível, este servidor não irá armazenar o endereço de outras máquinas,
armazenando estes endereços nos servidores de nomes dos domínios
inferiores. Observe o gráfico a seguir para compreender melhor o que
acabamos de citar:
Na
próxima aula iremos estudar a forma pela qual se dão as pesquisas
sobre qual o endereço TCP/IP de um determinado nome de domínio.
Como é
realizada uma pesquisa de endereço IP através de um nome? Vamos por
exemplo imaginar que você digitou na caixa de edição "Endereço" do seu
navegador a URL
http://www.aprendaemcasa.com.br/, neste momento, o seu navegador
da Web terá que transformar o nome "aprendaemcasa.com.br" em um
endereço IP válido e em seguida, estabelecer a conexão com o
respectivo servidor Web. Esta pesquisa utilizada para transformar um
endereço através de nome em um endereço IP é realizada junto ao
servidor DNS, conforme podemos observar na figura a seguir:
O processo
que acabamos de acompanhar é conhecido por "resolução de nomes" e, de
forma mais específica, são obedecidos os seguintes passos:
O
cliente digita um endereço Web qualquer (sem querer ou sem conhecer
o procedimento, quando digita o endereço, este está solicitando uma
conversão de um nome de domínio em endereço IP);
Tal
solicitação é encaminha a camada de interface de rede;
Esta por
sua vez terá que verificar se o nome digitado pelo usuário está
armazenado em seu arquivo HOSTS. Caso positivo, o endereço IP é
fornecido ao aplicativo e dá-se inicio à comunicação do usuário com
o Servidor Web. Caso negativo, o protocolo DNS gera uma mensagem com
destino ao servidor de nomes (DNS Server), solicitando o respectivo
endereço IP de aprendaemcasa.com.br;
O
servidor de nomes verifica se o nome objeto de pesquisa consta em
seu domínio. Caso positivo, devolve ao solicitante uma mensagem DNS
contendo o endereço IP que possibilitará a conexão do usuário com o
Servidor Web. Caso negativo, este servidor irá entrar em contato com
um servidor de nomes mais próximo solicitando a mesma pesquisa e
assim sucessivamente, até que um dos servidores de nome, retorne uma
mensagem DNS percorrendo o caminho inverso da solicitação, até
chegar ao usuário solicitando o referido endereço IP para que seja
estabelecida a conexão entre este e o Web server.
No próximo
módulo de aula iremos falar sobre a camada Internet e em consequência
devido ao fluxo da informação sobre a camada de roteamento.
Em uma
rede TCP/IP a entrega de datagramas é realizada pela camada Internet.
Nesta camada, vários outros protocolo são responsáveis por
determinadas tarefas, dentre eles podemos destacar:
IP
(Internet Protocol) -> este protocolo efetua a transmissão dos
datagramas, assim como é responsável pelo roteamento;
Protocolo RIP -> responsável por traçar as rotas através de uma
internet (nem sempre uma internet é exatamente a Internet que você
está acostumado, ou seja, a rede mundial de computadores, uma
internet pode ser um conjunto de redes TCP/IP);
Protocolo OSFP -> responsável pela descoberta de novas rotas em uma
internet;
Protocolo ICMP (Internet Control Message Protocol) -> aqui as
mensagens de status e erro são controladas.
Veja
abaixo um esquema gráfico básico de funcionamento da camada Internet:
O
principal protocolo da camada Internet não poderia ser outro senão o
IP. Ele possui duas tarefas principais e destacadas na maioria dos
livros sobre o assunto:
Recebimento dos segmentos da camada de transporte e transformação
dos mesmos em datagramas;
Envio
dos datagramas para os roteadores fazendo assim o roteamento das
mensagens.
O IP é
conhecido pelo termo "Connectionless Datagram Delivery" ou em outras
palavras entrega não confiável de datagrama sem conexão, ou seja, ele
não se preocupa se o datagrama chegou chegou ao destinatário e forma
correta ou não, cabe a ele apenas formatar corretamente os datagramas
e verificar a rota correta de entrega, cabendo ao protocolo TCP tal
tarefa, por ser um protocolo de transporte. Você irá entender melhor
tal procedimento através dos passos que envolvem a operação:
Os
segmentos da camada de transporte são enviados ao protocolo IP;
O IP
gera a quantidade necessária de datagramas de acordo com a
especificação do tamanho permitido para os frames da rede física;
Envie
estes datagramas para a interface de rede.
Observe
que este protocolo tem apenas a função de enviar e receber
datagramas.
Na próxima
aula iremos estudar sobre a forma de um datagrama IP
Quando é
gerado um datagrama IP, ocorre um processo conhecido por encapsulação,
ou seja, o fragmento que foi enviado pela camada superior é embutido
dentro do fragmento gerado pela camada atual, formando assim uma
espécie de "envelope com o conteúdo".
Vamos
comparar a uma carta. O envelope desta (datagrama IP) irá conter o
cabeçalho (remetente e destinatário), assim como o conteúdo (própria
carta, que seria o fragmento recebido do TCP). O principio é o mesmo.
Veja o
esquema gráfico a seguir:
Um
datagrama possui em média 64Kb e para o controle de entrega é gerado o
que vimos no gráfico acima como "cabeçalho IP", formado pelos
seguintes campos:
Campo de cabeçalho IP
Função
Versão
Armazena a versão do protocolo utilizado para encapsular o
datagrama
Espaço do Header
Informa o tamanho do cabeçalho IP que tem como medida a
quantidade de palavras de 32 bits
Tipo de serviços
Utilizado para a indicação de tipo de serviço, porém nem todos
os sistemas estão prontos para usufruir desta informação. Entre
outras informações possíveis, podemos determinar se este é um
datagrama de controle da rede, possuindo automaticamente desta
forma uma alta prioridade.
Tamanho total
Armazena a quantidade de bytes do datagrama
Identificação
Número gerado automaticamente que identifica o número do
datagrama.
Flags
Utilizado para o controle de fragmentação dos datagramas.
Estudaremos a fragmentação destes posteriormente.
Offset
Utilizado para indicar a posição do datagrama na área de dados
no caso de datagramas fragmentados
Time To Live
Indica o tempo em segundos que o datagrama poderá ficar
circulando pela Internet sem que seja dado como perdido.
Protocolo
Através de um código, identifica o protocolo de transporte que
gerou o pacote. O protocolo de transporte TCP é identificado por
exemplo pelo código 6
Header ChekSum
Valida as informações do cabeçalho IP, facilitando assim a
tarefa dos roteadores para a reconstrução ou envio dos
datagramas.
Endereço de origem
Armazena o endereço IP do remetente da mensagem
Endereço de destino
Armazena o endereço IP do destinatário da mensagem
Opções
Aqui
são especificadas opções especiais de controle do processo da
rede porém dificilmente utilizados. Dentre as informações mais
comuns aqui representadas temos:
Record Route -> aqui cada roteador por onde o datagrama passou
registra o seu endereço IP
Source Rote _. armazena uma lista de endereços IP sobre a rota
de entrega do datagrama
No próximo
módulo iremos estudar sobre a área de dados e a fragmentação de
datagramas
Conforme
observamos na figura apresenta no módulo de aula anterior, após o
cabeçalho do IP vem a área de dados, que recebe o conteúdo gerado pelo
protocolo de transporte. Em alguns casos, protocolos geram segmentos
(conteúdo) de um determinado tamanho, que é compatível com o espaço
desta área de dados (como por exemplo o TCP), porém em outros casos o
tamanho de um segmento poderá ser reduzido e assim deverá ocorrer o
que conhecemos por fragmentação. Em outras palavras, o tamanho de um
datagrama IP é de "x bytes", porém em algumas redes, como é o caso da
Ethernet, este tamanho é maior "xxx bytes" e precisa ser fragmentado.
O tamanho
máximo permitido para um frame em uma rede é denominado "maximum
transfer unit - MTU". Por exemplo: em uma rede do tipo Ethernet temos
como limite do MTU 1500 bytes. este fato não indica que todos os
datagramas tenham este mesmo tamanho, para isso, temos que levar em
conta alguns fatores:
O
cabeçalho do frame pode variar dependendo da configuração
escolhida;
Considerar aspectos de hardware diretamente envolvidos na
transmissão dos dados;
importante: vale lembrar também que o administrador da rede poderá
configurar o limite do MTU com um valor menor
Em uma
rede local, com apenas 4 equipamentos e sem estar conectada à
Internet, poderemos estabelecer que o MTU terá sempre um valor padrão
e ideal, como por exemplo 1500 bytes. Neste tipo de rede qualquer
protocolo de transporte irá gerar segmentos de tamanho compatível com
o MTU e desta forma, o IP poderá encaixar o datagrama em um frame da
rede.
A
afirmativa anterior já não é verdadeira no caso de termos várias redes
interligadas pois com certeza teremos MTUs com configurações
diferentes. Desta forma os datagramas deverão ser em alguns casos,
divididos em datagramas menores que em outras palavras é chamado de
processo de fragmentação.
O IP
fragmenta e desfragmenta (remonta) os datagramas conforme o MTU da
rede na qual opera, quando um protocolo de transporte gera segmentos.
Em algumas implementações do TCP/IP (por exemplo o Winsock) lhe
oferece a oportunidade de configurar o tamanho dos segmentos TCP,
assim sendo teremos duas situações:
Se o
segmento enviado pelo TCP ao IP se encaixa dentro do MTU configurado
para a rede, este gera um datagrama e o envia para a interface de
rede que por sua vez gera um frame para cada datagrama e em seguida
o envia para a rede;
Se o
segmento enviado pelo TCP ao IP não se encaixar dentro do MTU
configurado para a rede, este irá dividir o segmento em vários
datagramas compatíveis com o tamanho do MTU e neste caso, será usado
o campo OffSet do cabeçalho IP para que estes fragmentos sejam
numerados assim como tornar verdadeiro o terceiro bit do campo FLAG
para mostrar que existem mais fragmentos de uma mesma mensagem a
caminho, até que seja enviado o último fragmento, que voltará a ter
este bit como falso.
Para saber
se se está ocorrendo um processo de fragmentação e outras informações
sobre o procedimento como um todo, poderemos utilizar o NETSTAT,
através da seguinte sintaxe:
No exemplo
acima não ocorreram erros e muito menos fragmentação de datagramas.
No próximo
módulo iremos falar sobre roteamento, pois os fragmentos de um
determinado datagrama original também são considerados datagramas e
podem se utilizar de diferentes rotas.
Para
compreender o roteamento, primeiro é necessário estudar sobre os
roteadores, que são computadores ligados a mais de uma rede física e
que tem a função de destinar os pacotes para a rede destinatária.
Dentre algumas das características de um roteador, podemos citar que
estes conhecem os endereços de determinadas redes e possuem uma
espécie de mapa, ou seja, conhecem os caminhos necessários para que os
pacotes possam ser entregues.
Normalmente os roteadores são máquinas dedicadas, porém isso não é uma
regra. Máquinas equipadas com o Unix e outros sistemas servidores
podem desempenhar esta função. Aconselha-se o uso de roteadores
dedicados, pelos motivos que seguem:
Possuem arquitetura 100% desenvolvida para esta finalidade;
Executam apenas a tarefa de roteamento, aumentando a performance do
sistema;
Possuem software especialmente desenvolvido neste sentido.
Normalmente a programação de roteadores se dá pela própria rede e
estes não são acompanhados de monitores e teclados. Existem diversos
softwares utilizados para a programação de roteadores, o mais clássico
destes é o TelNet. Veja abaixo o gráfico de um roteador da marca
Cyclades, modelo PR3000:
É
importante lembrar que o roteamento não ocorre exclusivamente em
roteadores, pois cada máquina de uma determinada rede TCP/IP executa
tarefas (pequenas) que emulam o roteamento, isso porque o roteamento
de uma estação rateia apenas pacotes geradas por elas mesmas.
Veja no
gráfico abaixo um esquema sobre o funcionamento básico de um roteador:
Observe
que no esquema acima, o roteador 001 possui três interfaces de rede
TCP/IP (202..., 210... e 212...). Quando a estação A (com endereço IP
de 202.108.0.1) envie pacotes para a estação B (com endereço IP
212.210.10.11), primeiro conclui que que a parte do seu endereço IP
não faz parte de sua rede física (através de consulta da tabela de
roteamento IP), então estes pacotes serão enviados ao roteador 001 com
seu endereço físico, que por sua vez recebe estes pacotes, monta os
frames com o endereço físico ARP da estação B e envia os mesmos.
Existem
casos na qual o destinatário não está na mesma rede física, assim
sendo, o roteador 001 irá enviar os pacotes para um segundo
roteador, e assim sucessivamente, até que o destinatário se encontre
na mesma rede física de um determinado roteador.
Na
próxima aula iremos estudar sobre a tabela de roteamento.
Nesta aula
vamos falar sobre a tabela de roteamento IP (Routing Information Table),
que tem a função de "mostrar" o destino dos pacotes quando estes não
estão destinados a mesma rede física. Os equipamentos que utilizam o
TCP/IP sempre terão esta tabela, na mesma teremos os seguintes dados:
Campo
Objetivo
Destino
Contém o endereço de destino do pacote (que não pertence a mesma
rede física do remetente). Este endereço poderá ser formado por:
1) Endereço IP completo;
2) Um endereço de rede simples
Subnet Mask
Contém a máscara da sub-rede, necessária para que seja realizada
a comparação do endereço.
Gateway
Aqui
é armazenado o endereço Next Router, ou seja, o endereço IP do
roteador que tem a possibilidade de entregar o pacote ao
destinatário.
Interface
Aqui
é armazenado o endereço IP relativo à interface de rede para
onde o pacote será enviado, caso este seja um multihomed ou
roteador.
Métrica
Aqui
é armazenada a quantidade de roteadores pelos quais os pacotes
irá passar até que segue ao seu destino.
Esta
tabela será utilizada quando uma determinada estação tentar enviar um
pacote a um destinatário "x". Neste ponto será realizada uma
comparação entre o endereço da rede do destinatário com o endereço da
sua própria rede, através de uma operação lógica do tipo AND entre o
endereço IP e o campo máscara da sub-rede, que está configurado em seu
TCP/IP. Os Bits que correspondem ao endereço de rede ficarão no estado
positivo e, tendo como resultado uma diferença nesta comparação, o
sistema irá recorrer a tabela de roteamento IP (RIP).
Neste tipo
de operação, quando temos os endereços de redes idênticos, o datagrama
é enviado para a camada de interface de rede e esta tratará da
resolução do endereço físico (ARP), assim como do envio do frame. Caso
isso não seja verdadeiro, a estação deverá tomar conhecimento sobre o
roteador que poderá entregar o pacote para o destinatário, tendo assim
como base uma pesquisa que deverá se realizar a tabela de roteamento
IP, conforme vimos no parágrafo anterior. Na próxima aula iremos
estudar sobre os processos de roteamento.
Conforme
observamos no módulo de aula anterior, os roteadores necessitam sempre
estar atualizados sobre rotas e assim sendo, se torna necessário
trafegar os pacotes envolvidos na transmissão. O processo de
roteamento se torna necessário para conhecer como o IP interliga
diversas redes, possibilitando por exemplo, que um aluno do projeto
aprendaemcasa visualize nossas páginas, mesmo residindo na Austrália,
por exemplo.
São dois
os processos de roteamento existentes:
Direto;
Indireto.
O processo
de roteamento direto ocorre quando o destinatário está na mesma rede
física do remetente, assim sendo, temos os procedimentos seguintes:
O
protocolo de transporte de uma determinada estação de rede, envia um
segmento de mensagem para o IP (este está localizado na camada
Internet). Em anexo ao segmento é fornecido um determinado endereço
IP (endereço este do destinatário);
Neste
ponto, o IP formula um datagrama na qual irá concatenar o segmento
TCP na área de dados, além de informar o endereço IP recebido
somando-se seu próprio endereço IP no respectivo cabeçalho (origem e
destino);
Agora é
verificado se o endereço IP de destino pertence a mesma rede física;
Tendo
como resultado um "sim, pertence a própria rede física", o IP irá
encaminhar o datagrama para a interface de rede que corresponde a
rede do destinatário. Vale lembrar que o endereço IP do destinatário
será fornecido dentro do cabeçalho IP do datagrama;
A
interface de rede irá transformar o endereço IP de destino em
endereço físico através do uso do ARP;
O
endereço IP de destino (que foi concatenado ao cabeçalho IP) não é
utilizado. Será então formatado um frame inserindo-se neste o
datagrama;
Neste
cabeçalho (do frame) será fornecido o endereço físico obtido e em
seguida enviado pela rede;
Com base
neste processo, podemos concluir que:
As
camadas inferiores nunca irão abrir pacotes recebidos por camadas
superiores, logo, o endereço IP de destino sempre será fornecido à
parte.
Ao ser
enviado um datagrama para a interface de rede pelo IP, a mesma não
irá utilizar o endereço IP contido no cabeçalho IP, utilizando neste
caso o endereço IP anexado sobre a forma de parâmetro;
Durante
o processo de envio, os endereços IPs de destino e origem nunca
serão modificados;
Uma
determinada estação realizará a leitura de frames apenas quando o
destinatário tenha o seu endereço físico.
Na próxima
aula iremos estudar como este processo se realiza através do uso de
roteadores.
Os
roteadores tem um mecanismo de trabalho diferente do que estudamos no
módulo anterior, tendo como principal diferença o fato de que os
datagramas recebidos não tem como destino um "roteador", servindo este
apenas como uma espécie de ponte, ou seja, recebendo os datagramas,
este realizará um novo processo de roteamento para a interface de rede
ligada ao destinatário.
A nível de
estações e roteadores, o roteamento opera de forma idêntica, salvo o
fato de que as estações processam seus datagramas e os roteadores
processam todos os datagramas (independente do destinatário).
Com
base nisso, podemos traçar o seguinte esquema de roteamento:
O IP
irá receber um determinado datagrama que deverá ser roteado, sendo
que será extraído deste datagrama o endereço IP do destinatário e
consequentemente o seu endereço de rede também;
O
endereço de rede do destinatário será comparado com o endereço de
rede da interface, através da máscara da sub-rede;
No
caso desta comparação obter um resultado do tipo verdadeiro, o
respectivo datagrama será enviado para a interface de rede a que se
destina, juntamente com o IP do destinatário;
No
caso desta comparação obter um resultado do tipo falso, será
realizado um Loop, comparando-se o endereço IP com cada uma das
entradas da RIT (uma a uma) e, quando a mesma for encontrada
(comparação igual à verdadeiro), será enviado o datagrama para a
interface de rede obtida na comparação da tabela de entradas RIT,
pois será obtido neste momento o endereço IP.
Com
base no esquema acima, podemos afirmar que:
Cada
interface de rede possui sua máscara de rede;
Cada
interface de rede possui sua própria tabela de roteamento IP.
Na
próxima aula iremos falar sobre os protocolos de roteamento.
Imagine
uma instalação formada pela conexão de 3 redes, onde os roteadores
estejam diretamente ligados no decorrer desta rede, teríamos algo como
mostra a figura abaixo:
Observe
que no exemplo acima, as redes possuem um nome (Rd1, Rd2 ...) e cada
estação o seu nome. Para facilitar a compreensão do que iremos
explicar adiante, o endereço IP será representado pela sigla da
estação somado à sigla da rede, como por exemplo M1-RD1, M2-RD2, e
assim sucessivamente.
Assim
sendo, teríamos a seguinte sintaxe de RIT para cada uma estação:
Interface
= nome da máquina + nome da rede;
Gateway = roteador diretamente ligado + nome da rede;
Unidade métrica = sempre 1, pois todos estão diretamente
ligados entre si.
Desta
forma, poderemos exemplificar a seguinte configuração da estação M1:
IP =
M1-RD1
Interface = M1 - RD1
Gateway
= R1 - RD1
Se o micro
M1 enviar um pacote para a estação M4 da rede de número 3, o roteador
ligado a rede pertencente ao micro M1 usaria a tabela RIT para
localizar esta máquina, conforme podemos observar abaixo:
Destino
Gateway
Interface
RD3
R2 -
RD2
R1 -
RD2
Observe
que em uma pequna intranet as tabelas de roteamento das estações e dos
próprios roteadores é simples. Este tipo de rotas são conhecidas por
rotas fixas. Na próxima aula iremos verificar como é realizado este
procedimento quando a rede estiver ligada a outras redes, em outras
empresas, através da atualização automática das RITs e do protocolo de
roteamento.
Vamos
começar a estudar então o processo de roteamento externo em relação ao
roteamento interno. De uma forma simplificada, podemos afirmar que
atualmente na Internet, as redes são ligadas diretamente ao Backbone e
são consideradas como "sistema autônomo", sendo que este será soberano
sobre as demais redes que estiverem diretamente ligadas ao seu
domínio.
Para que
estes sistemas possam se comunicar com outros sistemas autônomos,
possuem entre outros fatores, roteadores que possuem a tarefa de
divulgar as rotas das suas próprias redes internas, se utilizando para
isso de um protocolo de divulgação próprio, como por exemplo o EGP.
Estes protocolos são conhecidos pelo nome de protocolo de divulgação
externa, divulgando os caminhos internos de um sistema autônomo para
os demais.
Por outro
lado, os sistemas autônomos necessitam de um protocolo próprio para o
roteamento interno, ou seja, das redes que estão sob o seu controle.
Estes protocolos são conhecidos por IGP (Internet Gateway Protocol).
Dentre os
IGPs existentes, podemos destacar um clássico, o RIP (Routing
Information Protocol). Este protocolo se utiliza do esquema
vetor-distância, ou seja, cada roteador gera/divulga uma tabela
contendo as redes que pode alcançar e respectivamente a sua distância.
A cada unidade deste campo "distância", corresponde que a rede está
conectada a um roteador. Exemplo:
Rede
Campo distância da RIP
Observações
200.203.0
1
indica que está conectado diretamente a rede e que por sua vez
ligada a um roteador
200.203.1
2
aqui
a rede passa por dois roteadores para poder ser alcançada
Ao receber
um lista de rotas pelo RIP (o roteador), esta será comparada com a
própria RIT e, as rotas que não estiverem presentes serão
acrescentadas (à RIT), somando-se a esta informação o endereço IP do
roteador que enviou a lista. Um outro fator interessante é que ao
encontrar uma rota já existente na RIT, o sistema irá comparar o fator
distância e, caso a nova informação tenha uma distância menor do que a
antiga, esta será substituída.
Pelo fato
das rotas que foram adquiridas via RIP serem dinâmicas, se tornam
vulneráveis a falhas e, muitos problemas poderão ser apresentados
devido a este fato. Para minimizar esta situação, as novas rotas
adquiridas através do RIP, terá uma contagem de tempo que passará a
valer a partir da sua última inclusão/alteração e, depois de um
determinado intervalo de tempo, se a mesma não for novamente
divulgada, esta será excluída da lista.
Dentre os
problemas que poderemos enfrentar devido a esta situação, podemos
destacar:
Dois roteadores apontam uma mesma rota, um para o outro e devido a
esta situação, os datagramas ficarão "rodando" na rede, até
esgotarem o tempo de vida dos mesmos (esta situação é conhecida
por loop de roteamento).
Nesta aula
iremos falar sobre o OSPF (Open Short Path Firts). Conforme estudamos
no módulo anterior, o RIP utiliza a técnica vetor-distância, sendo que
as rotas são obtidas de forma dinâmica e sujeitas a falhas de
roteamento, como citamos o Loop de roteamento e principalmente no que
se diz respeito à segurança.
Desenvolvido pela IETF, o OSPF como a própria siga apresenta, ao invés
de empregar a técnica vetor-distância, emprega a técnica Short Path
First, onde cada roteador mapeia de forma completa a rede que está ao
seu redor, determinando assim qual o melhor caminho a ser seguido por
cada uma. Para chegar a esta conclusão, cada rota passa a conter
informações como:
identificador da interface;
número
de enlaces;
distância ou métrica.
Com estes
dados armazenados, os roteadores tem como identificar a melhor rota a
ser seguida. é importante lembrar que neste caso, o roteador
proprietário do OSPF deverá receber informações de cada um dos
roteadores diretamente ligados a ele, que consequentemente trazem um
mapa dos roteadores ligados a este, formando uma grande teia de
informações, traçando-se assim um mapa global para identificar o
melhor caminho a ser seguido na rede.
Esta
operação é realizada através de dois procedimentos básicos:
Teste
dos roteadores ligados ao mesmo;
Divulgação periódica das informações dos roteadores ligados ao
mesmo.
Ao ocorrer
alguma alteração em um dos enlaces da rede, os nós adjacentes percebem
tal alteração e avisam aos vizinhos que por sua vez, observam o número
de protocolo do aviso e a hora do mesmo, para identificarem se este
aviso já lhe foi passado ou não, assim sendo ao receber uma mensagem,
o nó realiza em primeira mão a verificação da existência ou não da
rota em questão e não existindo a mesma, esta será adicionada, caso
contrário é comparada o número da mensagem recebida com a rota da
tabela. Se este número for maior que a da tabela, a rota será
substituída, caso contrário a rota da tabela é transmitida como uma
nova mensagem. A este procedimento damos o nome flooding.
O sistema
OSPF possui ao contrário da RIP, uma série de normas de segurança,
evitando assim erros de memória, falhas nos processos de flooding,
introdução de informação falsa, etc... através dos seguintes
mecanismos:
Envio
seguro dos pacotes de descrição das tabelas de rotas;
As
entradas são protegidas por um contador de tempo e, se um pacote de
atualização não chegar dentro deste período, a entrada é removida da
tabela;
As
entradas são protegidas através de um processo de verificação de
soma;
As
mensagens são autenticadas;
Dentre as
vantagens do protocolo OSPF sobre o RIP, podemos destacar:
1) Rápida
convergência e sem o risco de loops;
2)
Caminhos múltiplos;
O
protocolo OSPF tem em seu cabeçalho os seguintes campos:
Campo de cabeçalho
Finalidade
Idade do LS
tempo
em segundos desde que a rota foi primeiramente anunciada
opções
contém
as características do roteador que enviou a informação, como por
exemplo a capacidade de roteamento externo.
Tipo de LS
indica
o tipo de conexão
ID do estado de conexão
armazena o endereço IP e o roteador de anúncio
Roteador de anúncio
armazena o roteador que enviou a tabela
Número de sequências do LS
identifica rotas velhas e duplicadas
Verificação LS
utilizado para verificar dados corrompidos na rota (cheksum)
Comprimento
especifica o comprimento da rota.
Vale
lembrar que os roteadores de menor poder de processamento e modelos
mais antigos não estão preparados para operar este protocolo.
Nesta aula
vamos falar sobre o protocolo ICMP (Internet Control Management
Protocol). O mesmo oferece suporte à troca de pacotes de controle
com o objetivo de determinar acessibilidade, tempos de acesso (round-trip
time) e rotas usadas para acesso entre máquinas. Em outras
palavras, este protocolo permite a comunicação entre as camadas
Internet de diversos equipamentos envolvidos na transação.
Um
roteador em determinadas situações, solicita a uma estação que efetue
o trabalho de redirecionamento da rota ou ainda solicitar que informe
que um determinado datagrama foi perdido pelo motivo de esgotamento do
TTL, sendo que neste caso, gera uma mensagem ICMP diretamente para
quem o gerou. Além desta função, o ICMP possui recursos para que o
operador realize testes com relação ao alcance da estação, serviços de
redirecionamento de rotas, teste de acesso a hosts, etc...
Dois
comandos bastante simples, que fazem uso extensivo de pacotes ICMP,
são úteis em operações básicas de teste de acesso a hosts, e são muito
usados por ferramentas de gerência: ping e traceroute.
As
mensagens obtidas pelo ICMP, são produzidas dentro da camada Internet,
sendo que, o ICMP não formata os frames de forma direta, ou seja, as
mensagens serão encaminhadas como uma espécie de embrulho (termo
embutidas) fazendo parte de um datagrama.
As
mensagens são constituídas por uma espécie de cabeçalho, através da
qual será possível identificar o objetivo e o que causou a mesma, que
por sua vez serão encapsuladas dentro de um datagrama IP e enviadas
pelo processo normal de roteamento.
Dentre
os tipos mais comuns de mensagens ICMP, podemos destacar:
ECHO
REQUEST;
ECHO
DISPLAY;
DESTINATION UNREACHABLE;
SOURCE QUENCH;
ROUTE REDIRECT;
TIME
EXCEEDED;
ADDRESS MASK REQUEST.
Na
próxima aula iremos estudar cada uma das mensagens de forma mais
específica.
Nesta aula
vamos começar o estudo das mensagens do ICMP.
ECHO
REQUEST/REPLY
As
mensagens do tipo ECHO são amplamente utilizadas (como é o caso do
utilitário PING). Observe o exemplo abaixo:
Acima,
através do comando PING
http://www.aprendaemcasa.com.br/ (verifica se uma determinada
estação está respondendo) e, tivemos quatro mensagens ICMP ECHO
REQUEST e recebemos quatro mensagens do tipo ICMP ECHO REPLY. Este
sistema opera da seguinte forma:
Seu
computador quer estabelecer uma comunicação com o
aprendaemcasa.com.br;
Este por
sua vez envia uma mensagem ICMP do tipo ECHO REQUEST;
Caso a
comunicação esteja perfeita, o aprendaemcasa.com.br enviará ao seu
computador uma resposta do tipo ECHO REPLY da ICMP, notificando que
a comunicação está ocorrendo sem problemas.
Mais
adiante iremos estudar com detalhes o comando PING.
DESTINATION UNREACHABLE
Esta
mensagem do ICMP é gerada sempre que um determinado roteador não foi
capaz de entregar ao destinatário o datagrama a ele endereçado. A
mensagem em questão será enviada ao equipamento que deu origem
(remetente) do datagrama. Vários erros podem ocasionar tal situação,
para isso, esta mensagem acompanha no seu cabeçalho um campo que
determinada o tipo de erro que ocasionou o fato, conforme podemos
observar na tabela abaixo:
Mensagem
Significado
Network Unreachable
Por
problemas específicos de roteamento, a rede não pode ser
alcançada
Host Unreacheble
Por
erros de endereço IP ou máscara de sub-rede, o computador de
destino não pode ser encontrado
Fragmentation Needed
Gerado quando o roteador tenta fragmentar uma mensagem na qual o
bif DF (Dont Fragment) esteja positivo.
SOURCE
QUENCH
Este tipo
de mensagem ICMP é gerado quando um roteador está recebendo
determinados datagramas em uma velocidade superior ao do seu poder de
processamento. Estes por sua vez serão descartados e o remetente dos
mesmos receberá esta mensagem solicitando ao remetente a diminuição da
velocidade de envio.
ROUTE
DIRECT
Quando uma
determinada estação envia um datagrama através do roteador "abc" e
este detecta que outro roteador está mais próximo do destino do que
ele próprio, ele enviará assim mesmo o datagrama, porém irá gerar uma
mensagem do tipo ROTE DIRECT ao remetente, informando a melhor rota
para que ele alcance seu destino.
TIME
EXCEEDED
Esta
mensagem é gerada quando um Datagrama tem zerado o seu campo TIME TO
LIVE (TTL). Este tipo de erro tem várias causas, entre elas
destacamos:
Loop de
roteamento;
Distância incorreta.
ADRESS
MASK REQUEST
Através de
um roteador ou do Broadcast, uma estação poderá solicitar a máscara da
Sub-rede utilizada, enviando uma mensagem ICMP do tipo ADRESS MASK
REQUST.
Na próxima
aula iremos estudar os utilitários TCP/IP como o PING, NETSTAT, etc...
Vamos
começar o estudo do utilitário NETSTAT. Este tem a finalidade de
exibir as estatísticas e conexões de rede TCP/IP atuais. A sintaxe
deste comando é a seguinte:
[-a]
-> exibe as conexões e portas de escuta (ativas);
[-e]
-> exibe as estatísticas de uma ethernet;
[-n]
-> exibe os endereços IPs das conexões ativas (endereços e números
de portas);
[-p
protocolo] -> exibe as conexões para um protocolo especificado. Como
parâmetro poderá ser informado TCP, UDP, IP ou ICMP. Poderá ser
usado em conjunto com o parâmetro -s;
[-r]
-> exibe os dados da tabela RIT (tabela de roteamento);
[-s]
-> exibe as estatísticas para os protocolos TCP, UDP e IP. Caso
queira utilizar um subconjunto do padrão, poderá utilizar o
parâmetro -p
[intervalo] -> Especificando um intervalo (valor em segundos), o
aplicativo irá atualizar a informação solicitada dentro do intervalo
especificado.
Vamos
por exemplo listar a nossa RIT, assim sendo, digitamos o comando:
Veja
abaixo o exemplo do utilitário em questão, enviando informações sobre
sua conexão ethernet:
Conforme você pode observar, as opções disponíveis deste comando estão
claras na própria sintaxe do mesmo. Vamos abaixo exibir os endereços
IPs das conexões ativas de nossa rede:
Na
próxima aula iremos estudar sobre o comando PING.
Para
conhecer a estrutura do comando PING, proceda da seguinte forma:
1. Abra o
prompt do DOS;
2. No prompt de comando, digite: PING /?
3. Será exibida a seguinte janela:
No próprio
Help do aplicativo, temos uma explicação detalhada dos parâmetros a
serem utilizados pelo comando em questão, assim como a função de cada
um. Para a melhor compreensão deste aplicativo, vamos gerar alguns
exemplos:
Você
necessita saber se uma determinada estação ou website está respondendo,
para isso deverá utilizar o seguinte comando:
PING
IP_ou_endereco_www
Veja o
exemplo abaixo:
No quadro
gerado você tem um resumo de toda a operação que testou a comunicação
entre seu equipamento e o equipamento de destino. Quando pingamos por
nome ao invés de utilizarmos um endereço IP, estamos também verificando
se o DNS está operando normalmente.
Neste módulo
de aula, vamos começar a estudar o utilitário ROUTE, que tem a
finalidade de manipular as tabelas de roteamento da rede, onde poderemos
entre outras funções:
Imprimir
as entradas da tabela RIT;
Informar
entradas RIT manualmente;
Eliminar
uma rota, etc...
É muito
importante o máximo de cuidado ao trabalhar com este aplicativo, pois
você poderá causar transtornos na rede e sucessivamente, bagunçar o
roteamento. A sintaxe deste comando segue abaixo:
O parâmetro
-f quando empregado, limpa as tabelas de roteamento de todas as entradas
de gateway. Quando este parâmetro é utilizado juntamente com um comando,
este será executado primeiro (-f).
O parâmetro
-p em conjunto com o comando ADD torna uma determinada persistente
quando o sistema for inicializado. Vale lembrar que as rotas não são
preservadas quando o sistema é inicializado, salvo a condição aqui
apresentada. O windows 95 não apresenta este parâmetro em sua sintaxe.
Dentre os
comandos, poderemos utilizar os que seguem:
PRINT
-> imprime uma entrada de tabela;
ADD
-> adiciona uma nova rota;
DELETE
-> elimina uma rota;
CHANGE
-> altera uma rota.
O parâmetro
destino, especifica o host, destino dos datagramas.
O parâmetro
MASK especifica que o próximo parâmetro é uma máscara de rede, já o
subnet especifica o valor da sub-rede para a entrada da rota.
O parâmetro
gateway especifica o gateway, ou seja, o roteador para onde os
datagramas devem ser enviados , cujo o endereço IP foi informado como
destino.
Para maiores
detalhes, abra o prompt de comando e digite:
Nesta aula
vamos estudar o TRACEROUTE, que ao contrário do PING, em caso de erro,
indica onde está o mesmo. Este comando, quando trabalhado no ambiente
Windows, é implementado pelo aplicativo conhecido por TRACERT.EXE.
Ainda
diferente do Ping, que utiliza mensagens ICMP do tipo ECHO REQUEST, o
Traceroute usa os datagramas UDP da camada de transporte, enviando uma
série de datagramas UDP para a estação destinatária, setando o parâmetro
TIME TO LIVE para "1". Em caso de retorno de mensagens por TIME EXEEDED,
este valor será incrementado em uma unidade e o datagrama será novamente
enviado ... este loop será repetido até que o destino seja alcançado. O
loop será interrompido caso o TIME TO LIVE alcance o valor 30.
A sintaxe
deste comando poderá ser vista abaixo:
Caso o
parâmetro [-h] for omitido, o valor default será 30.
No parâmetro
[-j] deveremos especificar a lista de endereços IPs a serem seguidas.
Veja o
exemplo a seguir:
Observe que
você terá condições de saber quem está ligado a quem, entre você e o
endereço de destino. Veja um outro exemplo abaixo:
No próximo
módulo de aula iremos começar o estudo sobre a camada de transporte.
Na camada de
transporte, ocorre o procedimento de comunicação entre os programas
aplicativos que estão sendo executados e trocando informações entre
remetente e destinatário. Quando o IP recebe os datagramas e valida os
mesmos, estes são enviados para a camada de transporte que, por sua vez,
será enviado para a camada de aplicação, ou seja, para o programa
aplicativo que tem condições de trabalhar com os dados recebidos. Este
procedimento recebe o nome de multiplexação/demultiplexação, em resumo,
fazer com que um determinado programa receba os dados a ele destinado.
Atualmente
os sistemas operacionais são multitarefa, assim sendo, no processo de
multiplexação, onde se pode transmitir de forma simultânea dados de
diferentes aplicações, através do processo de intercalamento de pacotes,
ou seja, mesmo que vários programas estejam se comunicando
simultaneamente, os pacotes são enviados de forma intercalada aos
mesmos, fazendo com que nenhum programa fique "parado".
Uma outra
tarefa de desempenhada aqui é a da validação dos dados, não realizada
pelo IP.
Na camada de
transporte, operam dois protocolos principais:
TCP (transmission control protocol)
- protocolo seguro, onde as estações concretizam um circuito
virtual (considerado o mais complexo do sistema de protocolos TCP/IP),
onde os datagramas IP são recebidos, colocados em ordem e verificado
se o conteúdo chegou por completo;
UDP (User Datagram Protocol) -
protocolo de transporte não orientado à conexão, ou seja, neste não
existe a verificação se o pacote de dados chegou ou não corretamente
ao seu destino.
No próximo
módulo iremos estudar com mais detalhes a multiplexação.
Os
protocolos que operam na camada de transporte, utilizam um software para
realizar a multiplexação (fazer com que possa ser identificado o
programa que está enviando o conteúdo e o programa que deverá receber o
conteúdo). Este software é de fundamental importância, pois em sistemas
multitarefas, vários aplicativos trocam informações de forma simultânea
e, como saber para que aplicativo um determinado pacote é enviado? Neste
caso, estamos nos referindo aos aplicativos que são executados pelos
usuários em suas estações de trabalho. Outro fator importante é saber
que os aplicativos atuais trabalham em sistema Multithreading, ou seja,
um mesmo programa aplicativo, poderá estar em mais de um processo de
execução simultâneo (recepção e/ou envio de dados).
O protocolo
TCP/IP se utiliza das técnicas de portas e soquetes para identificar os
remetentes e seus devidos destinatários dos fatos citados acima. Vamos
primeiramente estudar as portas.
Geralmente o
primeiro erro que encontramos em diversos tutoriais que se encontram
disponíveis na Web, é comparar uma porta da camada de transporte a uma
porta de um dispositivo de hardware (LPT por exemplo). Uma porta dentro
da tecnologia do TCP/IP pode ser comparada a um painel de controle, que
irá oferecer canais para que os programas aplicativos possam se conectar
... Veja o gráfico abaixo:
Uma porta é
na verdade o pontapé inicial para a conexão de aplicativos na camada de
transporte, sendo que o programa servidor fica sempre verificando as
portas livre e, quando um programa cliente deseja a conexão com este, se
estabelece a conexão por uma determinada porta, até que a transferência
dos dados entre as partes esteja completa.
Os dois
protocolos que operam sobre a camada de transporte (TCP e UDP) tem uma
metodologia de trabalho diferenciada neste caso, conforme podemos
observar na tabela abaixo:
Protocolo TCP
Protocolo UDP
Ao
efetuar a conexão entre os programas cliente/servidor, o sistema
ficará monitorando o processo, para que as mensagens não sejam
perdidas. A solicitação de comunicação entre as partes deverá
partir do programa cliente, para a porta do servidor e, neste
caso, é criado um circuito virtual, estabelecendo a ligação entre
os aplicativos, durante a troca de informações
Não é
criado o circuito virtual entre o servidor e o cliente, sendo que
as mensagens são enviadas a uma determinada porta de uma estação
e, se algum programa estiver escutando aquela porta, irá receber a
mensagem e enviar uma determinada resposta, assim sendo, estas
mensagens poderão ser extraviadas ou simplesmente não chegarem ao
seu destino e, este controle passa a ser de responsabilidade dos
aplicativos.
Para
facilitar o trabalho do desenvolvimento de aplicativos, algumas portas
tem sua utilização padronizada, conforme poderemos observar na tabela a
seguir:
Número da porta
Serviço padrão
7
ECHO
20
DADOS
VIA FTP
21
FTP
(CONTROLE)
25
ENVIO
DE E-MAILS (SMTP)
80
WWW -
HTTP
110
VERIFICAÇÃO DE E-MAILS (POP3)
Agora temos
uma outra questão: se considerarmos apenas o emprego das portas, um
determinado programa poderia responder apenas a uma conexão por porta e,
o multithreadindg não seria aceito e, para solucionar este outro
problema, surgiu a tecnologia dos sockets, que iremos estudar no próximo
módulo de aula
Quando um
determinado aplicativo necessita se conectar a um "canal" para enviar ou
receber os dados, conforme estudamos na aula passada, este deverá criar
um Socket para que possa ser estabelecida a respectiva conexão. Em
outras palavras, o Socket seria a tecnologia empregada para estabelecer
a conexão de um aplicativo com um canal. Neste canal, poderemos ter
diversos aplicativos conectados, sendo que cada um terá um Socket
próprio para estabelecer a conexão. Este procedimento também ocorre no
UDP.
Ao ser
executado um programa servidor qualquer, este cria um Socket, que será
do tipo passivo, ou seja, ficará aguardando até que cheguem dados para o
mesmo e, neste momento, será aberto um Socket ativo para que seja
concretizada a comunicação com o remetente. O Socket passivo sempre
ficará aguardando uma solicitação de nova comunicação para criar um
Socket ativo e estabelecer a comunicação. Veja o gráfico a seguir:
No
esquema gráfico acima, o canal "x" possui um Socket passivo aberto
automaticamente quando este servidor foi executado. O aplicativo do
cliente envia uma mensagem que tem como destinatário o canal "x" e, tal
solicitação é interpretada e executada pelo Socket Passivo que, por sua
vez cria um Socket Ativo e, a comunicação entre cliente e servidor terá
inicio.
Como padrão,
a identificação dos sockets é realizada através do endereço IP da
estação remota e o número do canal utilizado.
No próximo
módulo de aula iremos estudar como é realizada a comunicação com a
camada Internet.
A camada
Internet saberá identificar para quem enviar um datagrama (pois dois
protocolos distintos geram os datagramas: TCP e UDP), através da
informação contida no cabeçalho IP do referido, mais especificamente no
campo conhecido pelo nome Protoloco, que contém justamente a informação
"para onde o datagrama deve ser enviado".
Já para a
troca de mensagens entre dois computadores diferentes, pode-se utilizar
o protocolo UDP (User Datagram Protocol), sendo que este se utiliza do
próprio IP para o transporte dos mesmos. Durante este processamento, o
UDP soma ao IP um campo que terá a finalidade de identificar o programa
a ser utilizado para o recebimento da mensagem no computador do
destinatário. O UDP é um protocolo de transporte, que no envio gera
frames na rede, através do processo de encapsulamento de seu conteúdo em
um datagrama IP. Observe os pontos a seguir:
1. Quando um
aplicativo envia uma mensagem para o UDP, este após recebe-la formata a
mesma em um datagrama UDP e o envia a camada Internet;
2. O
Datagrama UDP será encapsulado dentro do datagrama IP para que possa ser
enviado pela rede;
3. Para que
o sistema possa concretizar com sucesso o envio do datagrama, este
possuirá um cabeçalho contendo os seguintes campos:
Campo do cabeçalho
Objetivo do campo
Porta
Origem
Recebe a
numeração da porta do computador que gerou o conteúdo
Porta
destino
Recebe a
numeração da porta do computador que receberá o conteúdo
Tamanho
Tamanho
total de bytes do datagrama
Checksum
Campo de
verificação de conteúdo. Caso este campo esteja com valor zero, o
conteúdo não será verificado, caso contrário o UDP irá realizar a
validação deste para se "aprovado", ser enviado.
Este
protocolo é bastante utilizado em aplicativos simples. No próximo módulo
de aula iremos estudar sobre o protocolo TCP (Transmission Control
Protocol).
TCP (transmission
Control Protocol) é um protocolo de transporte confiável e, através do
emprego deste são realizados a maior parte dos serviços da Internet
usufruídos por você, como o WWW e FTP por exemplo. Mas porque ele é um
protocolo confiável?
O TCP recebe
os datagramas IP, coloca os mesmos em ordem e efetua a verificação para
saber se todos chegaram corretamente.
Quando o TCP
tem a função de transmitir um conteúdo qualquer (leia mensagem), este
será dividido em segmentos TCP. Estes segmentos serão enviados à camada
de transporte, oportunidade na qual serão gerados os datagramas IPs.
Estes serão enviados para a camada de interface de rede, oportunidade na
qual serão transformados em frames.
Os dados a
serem transmitidos pelo TCP na rede se utilizam do que conhecemos por
canais virtuais de comunicação. Estes canais são tratados simplesmente
por portas e, cada porta tem uma função especifica, conforme podemos
observar na tabela abaixo:
Porta
Função
11
systat
15
Netstat
20
FTP
21
FTP
23
TelNet
25
SMTP
43
Whois
79
Finger
80
HTTP
Veja no
gráfico abaixo como o TCP encapsula o pacote de dados:
Conforme
podemos observar no gráfico acima, sabemos que:
O TCP irá
empacotar os dados recebidos adicionando algumas informações, como por
exemplo a porta de origem e a porta de destino;
O pacote
gerado acima será enviado ao protocolo IP;
O IP por
sua vez irá adicionar algumas informações, como o endereço IP de
origem e destino ao pacote recebido do TCP e, tais informações serão
encapsuladas em um datagrama;
Este
datagrama será enviado a camada de interface da rede (leia o driver da
placa de rede);
Esta por
sua vez irá encapsular o datagrama em um quadro;
Este
quadro será enviado através da rede, tendo como veiculo principal a
placa de rede;
A máquina
do destinatário, ao receber o quadro (através do driver e da placa de
rede) irá repassar os mesmos para a camada IP;
Esta irá
passar os dados para a camada TCP;
Que por
sua vez encaminhará os dados à aplicação correspondente. Aqui entra o
uso de numeração das portas, para que o TCP saiba para que aplicação
enviar o conteúdo recebido.
Mas o que
acontece depois que a máquina de destino recebe um pacote de dados? Isso
será objeto de estudo de nossa próxima aula.
Quando os
segmentos chegam ao seu destino, o protocolo TCP/IP da máquina
receptora, envia uma mensagem para a máquina transmissora uma mensagem
que leva o nome de "acknowledge" ou mensagem de confirmação. A estação
transmissora aguarda por um determinado período (RTP - Round Trip Time),
a mensagem de confirmação por parte da estação receptora e, caso esta
mensagem não chegue, o pacote será transmitido novamente.
O tempo
citado (RTP - tempo aproximado de viagem) é calculado dinamicamente pelo
próprio protocolo TCP, pois fica difícil estabelecer um tempo fixo para
as mais variadas condições e configurações de rede. Este calculo
inclui uma série de fatores/procedimentos, como por exemplo um cálculo
médio entre o envio de um determinado pacote e o recebimento do mesmo,
média esta calculada a cada mensagem de confirmação recebida.
A contagem
dos dados transmitidos pelo TCP não é realizada através da soma de
pacotes, mas sim através dos bytes que são enviados para uma determinada
aplicação pela camada do TCP. A numeração destes pacotes então não será
sequencial e sim recebem esta numeração de acordo com o número de ordem
do primeiro byte do pacote, obedecendo uma lógica sequencial dentro do
fluxo dos dados, que estão sendo recebidos pelo TCP, sendo que a mesma
será armazenada no campo do cabeçalho TCP conhecido por "número de
sequência".
No próximo
módulo de aula iremos estudar sobre a conexão e os sockets.
Você saberia
definir o que é uma conexão? Uma conexão nada mais é do que a
comunicação entre dois aplicativos qualquer, que se encontram instalados
em máquinas diferentes (ligadas através de uma rede). Para que uma
conexão possa ser estabelecida, mantida durante a comunicação entre os
aplicativos e, finalizada ao final dos trabalhos é necessário que a
mesma opere sobre um protocolo responsável. O TCP tem esta função.
Durante os
três passos citados acima, você terá os seguintes procedimentos:
Através de
um procedimento conhecido por "handshake" é estabelecida a conexão;
Assim que
a conexão é estabelecida (aberta), as máquinas comunicantes irão gerar
um número que representará o número inicial da sequência de
comunicação (envio e recebimento de mensagens/pacotes);
Ao começar
a enviar os pacotes de dados, o transmissor envia o mesmo contendo o
número de sequência deste;
O receptor
ao receber o pacote verifica o número de sequência e, envia uma
mensagem confirmando o recebimento deste;
O
transmissor por sua vez, ao receber a confirmação irá enviar um novo
pacote ao receptor, confirmando o recebimento.
Observe
que na verdade temos duas mensagens de confirmação de recebimento e,
este processo recebe o nome de "three-way handshake". Através deste
processo de envio, confirmação e confirmação de recebimento, é mantida a
conexão.
O
fechamento da conexão se dá través do uso de um handshake de três
tempos, ou seja, o pacote estabelecendo o fim de conexão vai do
transmissor ao receptor, do receptor ao transmissor e finalmente
confirmando a operação do transmissão ao receptor.
No próximo
módulo de aula iremos estudar sobre os Sockets.
Conforme citamos, o TCP recebe os pacotes e realiza a entrega dos mesmos
diretamente ao protocolo de aplicação que seja compatível com o conteúdo
transmitido. Este procedimento só é possível pelo emprego de portas,
conforme estudamos na aula 30.
Agora temos um outro fator, comum em diversos aplicativos atuais:
entrega de pacotes a mais de uma aplicação do mesmo tipo comunicando-se
com a rede ao mesmo tempo. Você com certeza já abriu diversas janelas do
seu navegador Web e, em cada um deles está navegando em um site
diferente. Quando o TCP está entregando um conteúdo qualquer a cada da
aplicação, como irá saber em qual das janelas abertas o conteúdo deverá
ser exibido? Tal informação foi estudada de forma genérica na aula 28.
Em resumo, o Socket define uma conexão dentro de uma porta,
possibilitando assim termos várias conexões diferentes em uma mesma
porta.
Agora imagine que o TCP envie um determinado pacote e aguarde a
confirmação de recebimento para que envie um próximo, o processo como um
todo seria extremamente lento.Para melhor este desempenho, o TCP emprega
uma técnica conhecida por "Janela de dados", ou seja, O TCP envia vários
segmentos de uma só vez e, conforme são recebidas as confirmações, a
janela vai se movimentando possibilitando o envio de outros pacotes.
Veja o gráfico abaixo para melhor compreender este conceito:
O
principal objetivo do emprego desta tecnologia é justamente o aumento da
performance no processo de comunicação, pois conforme pudemos observar
na figura acima, o envio de um segundo pacote não depende do recebimento
da confirmação do primeiro.
Vale lembrar que o esquema de funcionamento deste método é mais complexo
do que o exibido no gráfico acima, ou seja, ele não ilustra a real
situação encontrada no procedimento. Uma das diferenças é que a janela
não opera por número de pacotes, mas sim pela quantidade total de bytes
dos mesmos e, desta forma, quando um equipamento necessita diminuir a
velocidade de confirmação de envio dos pacotes, será informando um
tamanho de janela menor no cabeçalho IP da próxima confirmação,
principalmente quando temos uma longa fila de dados a serem enviados,
pois o TCP possui o controle do tamanho da janela, onde é determinado o
tamanho total dos pacotes que cabem na mesma e, enviará os pacotes que
estão dentro da janela, assim que chegarem as demais confirmações,
diminuindo a sua carga máxima e permitindo novas remessas. Veja o
gráfico a seguir:
No
próximo módulo de aula iremos estudar sobre a recepção e organização dos
pacotes recebidos.
Quando os segmentos alcançam o seu destino, o TCP irá efetuar a
validação com base no campo Checksum, constante do cabeçalho do TCP,
estando este ok e, todos os demais estejam na ordem e confirmados, será
enviada a mensagem completa para o socket identificado pelo endereço IP
do comunicante e o número da porta. O programa que está com aquela porta
aberta, receberá a mensagem. Ao completar a transmissão do conteúdo por
inteiro, o remetente informa que nada mais tem a transmitir ao receptor,
através do FLAG FIN e, cabe a este continuar ou não a comunicação.
Aqui temos
um detalhe. Devido ao uso das janelas, o receptor normalmente recebe os
pacotes fora de ordem. Estes pacotes são
ordenados pelo TCP da máquina receptora com base no campo "número de
sequência dos segmentos". Por sua vez, a confirmação de recebimento no
protocolo TCP é realizada através de uma mensagem contendo o número da
sequência que ainda está esperando receber para completar o conteúdo e,
caso um dos pacotes seja perdido na comunicação, todos os demais
constantes da mesma janela deverão ser retransmitidos, o que é talvez a
maior falha deste protocolo, uma vez que o mesmo não temo como solicitar
e receber apenas o pacote extraviado.
No próximo módulo de aula daremos inicio ao estudo da camada de
aplicação.
Vamos começar os estudos sobre a camada de aplicação. Os protocolos que
operam nesta camada são orientados a serviço e, estes estão presentes
dentro dos aplicativos e, para elaborar programas TCP/IP deveremos
dominar os comandos do mesmo. Estes programas efetuam as suas chamadas
ao sistema operacional do equipamento para que possam solicitar os
serviços necessários para cumprir uma determinada função. Você já deve
ter ouvido falar em DLLs (para o ambiente Windows) e também já deve ter
ouvido falar no programa (DLL) Winshock, que é um exemplo real do que
estamos retratando. Veja abaixo a relação dos principais protocolos de
aplicação:
DNS -> utilizado para
nomear máquinas, ao invés do emprego de endereços IP;
Telnet -> utilizado para
a comunicação remota entre dois equipamentos;
FTP -> utilizado para a
transferência on-line de arquivos entre duas máquinas;
SMTP -> utilizado em
programas que gerenciam o envio e recepção de correio eletrônico;
HTTP -> usado na
transferência de conteúdo na Web (maiores detalhes sobre este
protocolo no curso ISAPI/NSAPI, em andamento no link "cursos
gratuitos" de nosso site).
Para que você compreenda melhor tais aplicativos, primeiramente
deveremos estudar alguns conceitos básicos sobre MIME e UUENCODE, que
são sistemas utilizados na codificação de mensagens de 8 bits para 7
bits e, estão presentes em aplicações que trocam informações do tipo
texto ASC II, como é o caso do SMTP e HTTP.
O sistema MIME possibilita a identificação do conteúdo da mensagem e o
método pela qual esta foi codificada. Já o UUENCODE (Unix to Unix Encode)
é utilizado em ambiente UNIX e é empregado na transmissão de arquivos
binários via e-mail.
Tais mecanismos foram implantados com a evolução dos sistemas que
empregam qualquer tipo de comunicação on-line. Imagine o correio
eletrônico, a princípio apenas textos eram trocados, e estes utilizavam
o padrão ASCII onde cada caracter ocupava 7 bits, porém com o passar dos
anos, além de textos enviamos gráficos, animações, etc... sem a
implementação destas tecnologias, estes conteúdos não poderiam ser
transmitidos.
Observe abaixo um exemplo de cabeçalho MIME obtido através de uma
mensagem de correio eletrônico:
Message-ID:
<md5:4462811C7560B893F5213CB0DDFC240B>
Return-Path:
<divpaulos@lycos.es>
Delivered-To: sac@aprendaemcasa.com.br
Received: (qmail 24592 invoked by uid 33); 23 Aug 2002 08:48:38 -0000
Delivered-To:
aprendaemcasa@aprendaemcasa.com.br
Received: (qmail 24588 invoked by uid 74); 23 Aug 2002
08:48:38 -0000
Received: from divpaulos@lycos.es by mail1 by uid 71 with
qmail-scanner-1.12 (trophie: 6.150-1001/313/46811. . Clear:. Processed
in 5.300231 secs); 23 Aug 2002
08:48:38 -0000
Received: from unknown (HELO lycos.es) (200.158.203.229) by 0 with SMTP;
23 Aug 2002 08:48:33 -0000
From: "Paulo's Informática" <divpaulos@lycos.es>
To:
<aprendaemcasa@aprendaemcasa.com.br>
Subject: 36 Programas Comerciais por apenas R$ 48,00
Sender: "Paulo's Informática" <divpaulos@lycos.es>
Mime-Version: 1.0
Content-Type: text/html; charset="ISO-8859-1"
Date: Fri, 23 Aug 2002 05:49:03 -0300
Content-Transfer-Encoding: 8bit
X-Mozilla-Status: 8000
X-Mozilla-Status2: 00000000
X-UIDL: 1030092518.24595.mail2
No próximo módulo de aula iremos detalhar o cabeçalho MIME bem como
oferecer maiores detalhes sobre os protocolos de aplicação citados no
inicio deste módulo.
O cabeçalho MIME é formado pelos seguintes campos (principais):
Campo do cabeçalho
Conteúdo
MIME -
Version
Informa a versão MIME utilizada
Content-TYpe
Tipo/subtipo do arquivo, a saber (tipo/subtipo):
text - arquivo de texto (TXT/HTML);
image - arquivo de imagem (JPG, GIF, BMP, etc...);
audio - arquivo de som (MID, etc...);
vídeo - arquivo de vídeo (AVI, MOV, etc...);
application - dados binários.
Content Transfer Encoding
Codificação empregada pelo MIME para transformar dados em ASC II 7
bits, sendo que os mais comuns são:
8 bits;
Base64;
Quoted-printable.
Vamos agora detalhar um pouco mais sobre os principais protocolos de
aplicação.
DNS (Domain Name System)
Quando estamos trabalhando em uma rede, todas as máquinas possuem um
endereço IP e, seria muito trabalhoso "decorar" endereços IP de máquinas
que queremos estabelecer uma comunicação, assim sendo foi criada a
tecnologia de DNS, que possibilita o uso de nomes ao invés de endereços
IP, facilitando assim o estabelecimento de uma determinada comunicação
entre as partes. O endereço
http://www.aprendaemcasa.com.br/ é na verdade um apelido para um
determinado endereço IP e, tal apelido se torna possível com o uso do
DNS. Um servidor DNS tem praticamente duas funções:
Converter endereços IP em endereços nominais;
Converter endereços nominais em endereços IP.
O sistemas de nomes gerenciado por um servidor DNS segue uma hierarquia
para organizar os dados que possibilitam a conversão de endereços IP em
endereços nominais, conforme podemos ver abaixo:
No exemplo
acima, temos uma pequena idéia desta estrutura hierárquica, pois com
certeza o número de "extensões" e respectivos servidores é bem maior,
porém você já entende agora o mecanismo que o controla e a estrutura
hierárquica do mesmo.
Quando temos
uma rede local com base no TCP/IP, teremos que ter pelo menos um
servidor DNS à disposição desta rede.
Se acontecer
de um determinado servidor DNS não conseguir efetuar uma conversão, este
irá responder o pedido informando o endereço de um servidor que seja
hierarquicamente superior a ele, até que se atinja um servidor capaz de
concretizar a conversão, assim sendo podemos afirmar que na Internet, os
endereços são resolvidos da direita para a esquerda.
No próximo
módulo de aula iremos estudar o formato das mensagens DNS e, sobre o
TELNET.
Você digitou
em seu navegador o endereço
http://www.aprendaemcasa.com.br/. O Browser precisa saber o número
do endereço IP desta URL para que a conexão seja estabelecida. Neste
momento são seguidas as seguintes etapas:
Se o
servidor local tiver este endereço em seu cache, será realizada a
resolução, oportunidade na qual a máquina irá receber o número do
endereço IP para o estabelecimento da conexão;
Se o
servidor local não conhecer este endereço (o mesmo não está armazenado
em seu cache), ele o enviará ao servidor DNS imediatamente superior e,
assim sucessivamente, até que o mesmo retorne com o endereço IP.
As mensagens
DNS normalmente utilizam o protocolo UDP durante a comunicação, através
da porta 53. Veja no gráfico abaixo o encapsulamento das mensagens DNSs:
Já as
mensagens DNS possuem os seguintes campos principais:
Campo
Função
IDENTIFICAÇÃO
Campo
numerador da mensagem DNS, possibilitando a correta identificação
das mensagens de resposta quando enviadas a máquina transmissora
da solicitação
PARÂMETROS
Definem através de uma combinação de códigos de bits o tipo da
mensagem, como por exemplo se é uma mensagem de pergunta ou
resposta.
NUMERO
DE PERGUNTAS
Informa o número de perguntas existentes no campo seção de
perguntas
NÚMERO
DE RESPOSTAS
Informa o número de respostas existentes no campo seção de
respostas
NÚMERO
DE AUTORIDADES
Informa o número de autoridades no campo autoridades, existentes
entre os bits do campo de parâmetros
No próximo
módulo de aula iremos estudar sobre o TELNET.
O Telnet é
um protocolo de aplicação que possibilita a interação entre dois
computadores remotamente. Através deste aplicativo o micro cliente
poderá realizar um logon em um servidor que esteja conectado a rede ou à
Internet.
O computador
remoto deverá ter um aplicativo com o Socket passivo operando na porta
23. Este aplicativo recebe o nome de TELNETD (Telnet Daemon = Servidor
Telnet).
O aplicativo
em questão utiliza a codificação ASC II para a transmissão de dados, ou
seja, se você pressiona a tecla "C" no micro cliente, será enviado ao
micro servidor o valor 67 (valor ASC II de "C"). Este aplicativo utiliza
o bit de controle Push, que irá realizar a transmissão de apenas um byte
de dado, como é o caso do pressionamento da tecla "C".
Os comandos
digitados através do TelNet devem ser reconhecidos pelo servidor, pois o
Telnet é o que chamamos por Terminal Burro, ou seja, ele não age sobre o
servidor, apenas interage com o servidor.
Vale lembrar
que, apesar de serem configurados para operar na porta 23, o protocolo
Telnet possibilita que qualquer porta seja acessada.
No próximo
módulo de aula iremos estudar sobre o protocolo de aplicação FTP.
O FTP é dos
protocolos de aplicação da Internet dos mais conhecidos. Seu objetivo é
possibilitar a transferência de arquivos entre servidores FTP e clientes
FTP. Para que o transporte de arquivos de um lado para outro o FTP
utiliza o protocolo de transporte FTP.
Para que o
servidor FTP disponibilize os serviços para os quais foi preparado, este
executa um Daemon, programa conhecido por "FTDP".
Para que
você receba ou envie um arquivo do/para seu servidor, deverá executar um
programa FTP em sua estação. Um dos programas mais conhecidos do mercado
é o WS_FTP. Abaixo a tela do programa em questão:
** Iremos
estudar com detalhes a operação deste aplicativo durante o curso de
FrontPage XP, em andamento e gratuito. Maiores detalhes no link "cursos
gratuitos" de nosso site.
Para que a
conexão se torne possível, observe que o usuário deverá informar o nome
do servidor FTP (ou se preferir o seu endereço IP), seu nome de usuário
e senha (entre outras informações) e, apenas após este procedimento de
login entre as partes, será possível executar diversas operações, entre
elas destacamos:
Enviar um
arquivo ao servidor;
Baixar um
arquivo do servidor;
Excluir um
arquivo no servidor;
Alterar o
nome de um arquivo no servidor;
Criar
pastas no servidor;
Excluir
uma pasta no servidor, etc...
O FTP para
realizar tais procedimentos utiliza duas portas distintas:
Porta 21;
Porta 20.
A porta 21 é
utilizada para a troca de comandos e, a porta 20 é utilizada para a
troca de dados, conforme podemos observar na figura abaixo:
Ao solicitar
a conexão, o cliente FTP abre um Socket ativo na porta 21 e um Socket
passivo na porta 20. No próximo módulo de aula iremos estudar os
comandos FTP.
Um cliente FPT efetua solicitações ao servidor FTP através de comandos
próprios do sistema, entre os quais destacamos:
USER -> identifica um usuário para um servidor FTP. Este
comando recebe como parâmetro único o nome do usuário, exemplo: USER
APRENDAEMCASA.
PASS -> identifica a senha do usuário. Este comando recebe como
parâmetro único a referida senha, exemplo: PASS 123456.
QUIT -> termina uma conexão FTP e este comando não é
acompanhado de parâmetros.
CWD -> efetua a troca do diretório em operação no servidor FTP
e recebe como parâmetro o nome do novo diretório no qual passará a
operar.
PORT -> aqui teremos especificado endereço IP, bem como a porta
da máquina que irá receber os dados. Este procedimento é necessário
para a listagem de diretórios e transferência de arquivos.
PWD -> Oferece como retorno o nome do diretório que está sendo
operado no momento ao lado do servidor.
TYPE -> determina o tipo de transmissão que será realizada, ou
seja, se será do tipo texto ou binário. Este comando recebe como
parâmetro um único caracter, dentre os que destacamos na listagem
abaixo:
A -> ASC II (texto puro);
E -> EBCDIC, para transmissões entre mainframes IBM;
I -> Arquivo binário (imagens, sons, etc...);
L -> transmissão binária.
RETR -> Comando que realiza a cópia do arquivo do servidor para
o cliente FTP.
STOR -> Armazena o arquivo no servidor, sendo que o mesmo será
salvo no diretório em operação no momento.
RNFR ... RNTO -> Utilizados em conjunto para alterar (renomear)
um determinado arquivo, sendo que o parâmetro que acompanha o comando
RNFR corresponde ao nome atual do arquivo e sua extensão e, o
parâmetro RNTO corresponde ao novo nome do arquivo e sua extensão.
DELE -> Apaga o arquivo no servidor.
MKD -> Cria um novo diretório no servidor FTP, recebendo como
parâmetro o nome do novo diretório, que será gerado abaixo do
diretório geral.
RMD -> Remove um diretório do servidor, recebendo como
parâmetro o nome deste diretório.
LIST -> retorna com uma listagem do diretório do servidor FTP.
STAT -> Retorna o status do processo de transferência de um
arquivo.
HELP -> Help do sistema.
NOOP -> mantém a conexão ativa , evitando que a mesma seja
desfeita no caso de inatividade por um período de tempo.
Daremos continuidade ao estudo do FTP no próximo módulo de aula.
Para
utilizar o FTP, é necessário que seja seguido uma ordem dos comandos,
além de uma sequência lógica para o mesmo, conforme podemos observar no
passo a passo abaixo:
É
necessário que se tenha um programa que fique na escuta da porta que
está sendo empregada na comunicação/transferência de arquivos entre as
partes;
Emprega-se
o TelNet para realizar a conexão FTP;
É
realizada a identificação do usuário com o servidor através dos
comandos USER e PASS;
Realizando
a autenticação com sucesso, será empregado o comando PORT, para
informar a porta de comunicação. Por padrão a porta utilizada é a 20;
Através
dos comandos PWD e LIST é aberto um determinado diretório e listado o
seu conteúdo;
Para
realizar uma transferência, é empregado o comando RETR ou outra
qualquer como por exemplo o DELE, MKD, etc...
Para
finalizar a sessão é empregado o comando QUIT.
NOTA: Alguns servidores FTP
possibilitam o acesso anônimo, neste caso o código do usuário deverá ser
identificado como "anonymous". Existem algumas restrições para este tipo
de acesso.
Para
executar o TelNet no Windows, basta abrir o Prompt de comando e em
seguida digitar TELNET, será então aberta a seguinte janela:
Neste ponto
você poderá iniciar a digitação dos comandos. Este método não é o mais
rápido e eficiente, você poderá utilizar um utilitário do próprio
Windows para realizar estas tarefas. O utilitário é o FTP.EXE e pode ser
executado a partir do prompt do DOS (para abandonar a sessão FTP acima,
basta digitar o comando QUIT). Iremos estudar os detalhes deste
aplicativo no próximo módulo de aula.
Uma maneira
menos complexa de se utilizar o FTP é através do emprego do cliente FTP
do Windows. Para executar o FTP do Windows, proceda da forma que
segue:
1. Abra o
Prompt do DOS;
2. Digite o comando FTP no prompt de comando, conforme mostra a figura
abaixo:
3. O próximo
passo é começar a digitar os comandos que fazem parte deste aplicativo,
conforme podemos observar na tabela abaixo:
Comando
Função / sintaxe
OPEN
Estabelece a conexão com um servidor FTP. Aqui poderá ser
empregado o nome do servidor ou endereço IP do mesmo. A sintaxe
deste comando pode ser observada abaixo:
OPEN <servidor>
DIR
Lista
o diretório do servidor FTP. A sintaxe deste comando é observada
abaixo:
DIR
<diretório>
CD
Efetua
a troca de diretório no servidor. Sintaxe:
CD
<diretório>
CDUP
Efetua
a troca do diretório atual para o diretório principal/pai.
Sintaxe:
CDDUP
ASCII
Informa que o modo de transmissão dos arquivos para o servidor
será via ASC II. Sintaxe:
ASCII
BINARY
Informa que o modo de transmissão dos arquivos para o servidor
será do tipo binária. Sintaxe:
BINARY
MKDIR
Cria
um diretório no servidor. Sintaxe:
MKDIR <nome_diretório>
RMDIR
Remove
um diretório no servidor. Sintaxe:
RMDIR <nome_diretório>
LCD
Informa o nome do diretório local ou altera o mesmo. Este
diretório diz respeito ao cliente FRP. Sintaxe:
LCD
<nome_diretório>
GET
Copia
um arquivo localizado no servidor para o equipamento empregado
pelo cliente FTP. Sintaxe:
GET
<nome_arquivo>
PUT
Envia
um arquivo localizado no cliente FTP para o servidor. Sintaxe:
PUT
<nome_arquivo>
STATUS
Exibe
informações sobre a conexão, conforme podemos observar na figura
abaixo:
No próximo
módulo de aula iremos estudar sobre os protocolos SMTP e POP3,
responsáveis pelo serviço de correio eletrônico.
Quando
falamos em correio eletrônico (e-mail), estamos de forma indireta nos
referindo a dois protocolos que possibilitam implementar este serviço:
SMTP;
POP3.
Estes
protocolos (Simple Mail Transfer Protocol e Post Office Protocol)
empregam o TCP como seu protocolo de transporte.
Quando você
envia uma mensagem de correio eletrônico, está automaticamente
utilizando o protocolo SMTP e, ao receber uma mensagem de correio
eletrônico está automaticamente utilizando o protocolo POP3. Observe
este esquema no gráfico abaixo:
Vamos
primeiro estudar com maior riqueza de detalhes o envio de mensagens
através do protocolo SMTP. Este servidor é dotado por um Daemon e as
mensagens SMTP são recebidas através da porta 25. Além de envio de
mensagens, o SMTP também poderá ser utilizado para receber mensagens
provenientes de outros servidores. Os comandos que fazem parte deste
protocolo são listados abaixo:
HELO
MAIL
RCPT
DATA
QUIT
No próximo
módulo de aula iremos estudar o objetivo dos mesmos e a ordem na qual
são empregados.
Vamos a uma
breve descrição dos comandos do protocolo SMTP:
HELO - este comando identifica a
máquina responsável pelo envio da mensagem. Este nome normalmente é
representado pelo nome do dominio do computador remetente.
MAIL - Identifica o remetente da
mensagem. A especificação completa deste comando é MAIL FROM: seguido
do e-mail do remetente.
RCPT - Especifica o endereço de
destino da mensagem (e-mail de destino). A especificação completa
deste comando é RCPT TO: seguido do e-mail de destino.
DATA - Especifica o envio da
mensagem.
QUIT - Encerra a conexão.
Estes
comandos são executados na seguinte ordem:
O primeiro
passo é estabelecer a conexão com o servidor SMTP para a pessoa que
desejamos enviar a mensagem;
Quando você
envia uma mensagem de correio eletrônico, a mesma ficará armazenada em
algum servidor, esperando que você se conecte à Internet e em seguida
solicite as mensagens que foram destinadas ao seu endereço eletrônico.
Para tal procedimento temos o protocolo POP3, que possibilita a
transferência das mensagens que estão em um determinado servidor para o
seu computador. Os principais comandos empregados neste protocolo são:
USER - tem a função de
identificar o usuário em sua tentativa de conexão com o servidor POP3.
A sintaxe deste comando é user <usuário>;
PASS - informa a senha do
usuário para saber se o mesmo poderá ou não se logar ao servidor POP3.
A sintaxe deste comando é pass <senha>;
STAT
- informa o número de mensagens que existem para serem recuperadas. A
sintaxe deste comando é seu próprio nome;
LIST
- Informa através de linhas os dados da mensagem. Se especificado um
número de mensagem após o comando LIST, serão retornadas informações
sobre a mensagem representada pelo número indicado.
RETR
- Comando que retira a mensagem do servidor POP3;
DELE - apaga uma determinada
mensagem do servidor POP3;
RSET - Reseta a conexão;
QUIT - termina a conexão.
No próximo
módulo de aula iremos estudar mais alguns detalhes sobre o POP3.
Quando você
solicita as mensagens que lhes foram enviadas, o sistema obedece a
seguinte ordem de execução de comandos:
Estabelece
a conexão com o servidor POP3;
Aplica o
comando USER;
Aplica o
comando PASS;
Aplica o
comando STAT;
Aplica o
comando RETR e em seguida o comando DELE. Este procedimento é repetido
enquanto ainda existirem mensagens a serem recuperadas;
Aplica o
comando QUIT.
Vamos neste
módulo começar a estudar sobre o protocolo HTTP (HyperText Transfer
Protocol). Este protocolo é que proporciona o trabalho com o serviço da
World Wide Web (www). Muitos não sabem, porém o HTTP também
utiliza o protocolo TCP para o transporte.
Este serviço
utiliza a porta 80 para que possa ser implementado no sistema. Este é um
dos protocolos mais simples e fáceis de ser estudado, pois o HTTP é
formado apenas por dois comandos básicos. Para realizar as suas tarefas,
existem dois pontos distintos:
1. Cliente
HTTP;
2. Servidor
HTTP.
Observe o
gráfico abaixo:
Conforme
você pode ter observado, quando solicitamos uma determinada página da
Web e a mesma é aberta por completo em seu navegador, na verdade este
processo é concretizado após uma longa conversa que tem como principal
assunto a solicitação e envio de conteúdo entre o cliente HTTP e o
servidor Web.