Escolar Documentos
Profissional Documentos
Cultura Documentos
O processo de enviar uma requisição para um servidor é parecido com o de enviar um pacote
pelos correios, isto é, os pacotes enviados pelo computador passam por algumas etapas até
chegar ao destino final. Esses passos são o que chamamos de modelo OSI.
Quando fazemos uma requisição para um servidor web, essa percorre um longo caminho da sua
máquina até o servidor.
Essa requisição que saí do seu computador por um cabo de rede, ou pelo ar, caso use um Wi-Fi.
Passa pelo seu provedor de internet e por diversos outros servidores até chegar no destino.
Quando o servidor manda uma resposta, esse caminho se repete.
Mas como a requisição sabe qual caminho seguir? Como ela sai do meu computador e chega ao
servidor?
Conhecendo melhor o modelo OSI: Quais são as 7 camadas de rede?
O modelo OSI é um padrão para os protocolos de rede. Protocolos nada mais são do que regras
de comunicação usadas para conectar dois ou mais computadores. O que o modelo OSI faz é
agrupar esses protocolos em grupos específicos, ou camadas.
Camada 1 - Física
A primeira camada do modelo OSI é a camada física. Voltando para o exemplo dos correios, a
camada física seriam as estradas, ou seja, o caminho que os pacotes percorrem para chegar ao
destino.
Nesta camada são especificados os dispositivos, como hubs e os meios de transmissão, como os
cabos de rede. Os dados são transmitidos por esses meios e processados na próxima camada.
Camada 2 - Enlace ou Ligação
Fazendo um paralelo com os correios, essa camada funciona como um fiscal. Ele observa se o
pacote tem algum defeito em sua formatação e controla o fluxo com que os pacotes são
enviados.
Nesta camada, os dados recebidos do meio físico são verificados para ver se possuem algum
erro e,se possuírem, esse erro pode ser corrigido. Dessa forma, as camadas superiores podem
assumir uma transmissão praticamente sem erros. Esta camada também controla o fluxo que os
dados são transmitidos.
Nesta camadas que são definidas as tecnologias como as VLans, ou topologias como a Token
ring, ou a ponto-a-ponto. Também é nesta camada que dispositivos como os switches funcionam.
Esta camada é dividida em duas subcamadas: A camada MAC e a camada LLC.
A subcamada MAC
Arquitetura de Sistemas Computacionais e Projetos - EAD Projetos
- EAD Professora: Adisnéia Pereira
É nesta camada que possibilita a conexão de diversos computadores em uma rede. Cada
máquina conectada na rede tem um endereço físico, conhecido como endereço MAC. É esse
endereço que a camada utiliza para identificar e enviar os pacotes.
Essa camada atua como uma interface entre a camada física e a subcamada LLC.
Já a subcamada LLC
É nesta camada que temos o controle de fluxo dos dados na rede. É por conta dessa camada que
conseguimos ter vários protocolos da próxima camada convivendo dentro de uma mesma rede.
Camada 3 - Rede
Quando estamos enviando uma carta, os correios verificam quem é destinatário e quem é o
remetente da mensagem. Se existirem muitas mensagens para serem enviadas, eles podem
priorizar quais serão enviadas primeiro e qual é o melhor caminho para enviar essa carta.
Isso é justamente o que a camada 3 faz, ela atua como uma central dos correios. Esta é talvez a
camada mais atuante nas redes, principalmente na internet.
É nesta camada que temos o endereçamento IP de origem e de destino, ela também pode
priorizar alguns pacotes e decidir qual caminho seguir para enviar seus dados.
Essa camada basicamente controla o roteamento entre a origem e destino do pacote.
"Mas por que utilizar o endereço IP se já temos o endereço MAC?”
O endereço MAC é o endereço físico de quem envia o pacote. Ou seja, se enviarmos um pacote
e esse pacote passar por cinco dispositivos diferentes (roteadores, switches, ou servidores, por
exemplo) o endereço MAC é alterado no processo. Já o endereço IP não sofre essa alteração.
O endereço IP é a identificação da sua máquina na rede. É aquele endereço como 192.168.0.1.
É nessa camada que temos protocolos como o IP ou o ICMP.
Bem, as cartas chegaram a central dos correios, agora elas precisam ser transportadas.
Camada 4 - Transporte
Se na camada um temos as estradas e os caminhos que os dados percorrem, na camada quatro
temos os caminhões e os carteiros.
É esta camada que garante o envio e o recebimento dos pacotes vindos da camada 3. Ela
gerencia o transporte dos pacotes para garantir o sucesso no envio e no recebimento de dados.
Esta camada lida muito com a qualidade do serviço para que os dados sejam entregues com
consistência, isto é, sem erros ou duplicações. Porém nem todos os protocolos desta camada
garantem a entrega da mensagem.
Protocolos muito comuns dessa camada são os protocolos TCP em UDP. O primeiro garante a
entrega da mensagem, diferente do segundo. Por não garantir a entrega da mensagem, o
protocolo UDP é um pouco mais rápido que o TCP.
Bem, mas para ocorrer o transporte de um pacote entre os computadores, é necessário que as
máquinas consigam se comunicar. Isso é função da próxima camada.
Arquitetura de Sistemas Computacionais e Projetos - EAD Projetos
- EAD Professora: Adisnéia Pereira
Camada 5 - Sessão
Está camada é responsável por estabelecer e encerrar a conexão entre hosts. É ela quem inicia e
sincroniza os hosts.
Além de realizar o estabelecimento das sessões, esta camada também provém algum suporte a
elas, como registros de log e realizando tarefas de segurança.
Recebemos os pacotes, vamos checá-los para ver que dados tem dentro?
Ainda não podemos. Os dados ainda precisam ser tratados para serem usados. Como a camada
de sessão só é responsável por estabelecer a conexão entre os hosts, o tratamento dos dados é
de responsabilidade da próxima camada.
Camada 6 - Apresentação
Está é a camada responsável por fazer a tradução dos dados para que a próxima camada os use.
Nesta camada temos a conversão de códigos para caracteres, a conversão e compactação dos
dados, além da criptografia desses dados, caso necessite.
Depois de tratados, esses dados estão prontos para serem usados na próxima camada.
Camada 7 - Aplicação
A última camada do modelo OSI é a camada para consumir os dados. Nesta camada temos os
programas que garantem a interação humano-máquina. Nela conseguimos enviar e-mails,
transferir arquivos, acessar websites, conectar remotamente em outras máquinas, entre outras
coisas (Falando em conectar remotamente, você conhece as diferenças entre Telnet e SSH?).
É nesta camada que temos os protocolos mais conhecidos como o HTTP, FTP, além de serviços
como o DNS.
Para saber mais
Quando falamos das camadas do modelo OSI, costumamos falar na ordem inversa, isto é, a
camada mais alta é a camada 7, enquanto que a camada 1 é a camada mais baixa:
Arquitetura de Sistemas Computacionais e Projetos - EAD Projetos
- EAD Professora: Adisnéia Pereira
Além do modelo OSI, outro modelo utilizado em redes é o TCP/IP. Esse modelo, que leva o nome
de dois protocolos, busca agrupar os protocolos da mesma forma que o modelo OSI, porém com
menos camadas.
Conhecer os protocolos é uma das skills de quem trabalha com infra. Não é necessário saber
todos, mas conhecer alguns pode ajudar na hora de resolver alguns problemas na rede.
Se quiser aprender um pouco mais sobre esses protocolos, temos aqui na Alura uma formação
em redes.
Nela você aprenderá sobre os protocolos, como criar e configurar uma rede local, sobre VLans,
além de segurança.
Se você é um desenvolvedor web, conhecer os protocolos por trás de seus projetos podem ajudar
a otimizar o código e melhorar os serviços.
Na web o principal protocolo é o HTTP e aqui na Alura temos um curso sobre este protocolo. Nele
você aprenderá como utilizar tudo que o protocolo HTTP tem para oferecer.
TCP/IP
O que é TCP?
O protocolo TCP é, talvez, o mais utilizado na camada de transporte para aplicações na Web.
Diferente do UDP, o TCP é voltado à conexão e tem como garantia a integridade e ordem de
todos os dados.
Para manter a confiabilidade dos dados, o TCP utiliza um aperto de mãos de três vias, o _three
way handshake_, também chamado de SYN,SYN-ACK,ACK.
Como funciona o Protocolo TCP?
Arquitetura de Sistemas Computacionais e Projetos - EAD Projetos
- EAD Professora: Adisnéia Pereira
O nome SYN,SYN-ACK,ACK é uma resumida descrição de como esse handshake funciona. A
conexão entre dois hosts começa com o primeiro enviando ao segundo um pacote de
sincronização (SYNchronize).
O segundo host recebe esse pacote e responde com a confirmação da sincronização
(SYNchronize-ACKnowledgment). O primeiro host, por fim, manda uma confirmação
(ACKnowledge) para o segundo, assim estabelecendo a conexão.
Com o TCP, de fato temos uma conexão entre um ponto e outro, comumente chamados
de servidor e cliente. É interessante notar que o TCP permite o envio simultâneo de dados de
ambos os pontos ao outro, durante todo o fluxo de comunicação.
Desse modo, o TCP é ideal para casos em que a confiabilidade dos dados é essencial, como
quando se trata de mensagens de texto! Trocando o uso do UDP pelo TCP em minha
aplicação,tudo vai funcionar bem, mesmo que com uma velocidade possivelmente um pouco
menor.
Afinal, o importante é que a troca de dados, ou seja, de mensagens, seja efetuada com sucesso,
de modo que quem está se comunicando consiga se entender!
UDP
O que é UDP?
O protocolo UDP (sigla para User Datagram Protocol) tem, como característica essencial, um
atributo que pode parecer esquisito para os iniciantes no tema - a falta de confiabilidade.
Isso significa que, através da utilização desse protocolo, pode-se enviar datagramas de uma
máquina à outra, mas sem garantia de que os dados enviados chegarão intactos e na ordem
correta.
Como funciona o Protocolo UDP?
O UDP é um protocolo que não é voltado à conexão. Isso significa que o "aperto de mão", ou,
tecnicamente, handshake, não é necessário para que se estabeleça uma comunicação.
Dessa forma, com o UDP é possível enviar, pela mesma saída, dados para diversas máquinas
diferentes sem problema algum.
Podemos fazer um paralelo com aqueles anúncios em alto-falante. O anúncio consegue sair em
busca do destino, mas não temos certeza se o destinatário da mensagem conseguiu ouvi-la.
Entendendo o UDP, fica claro nosso problema - a falta de confiabilidade dele fez com que as
mensagens trocadas pelo bate-papo se corrompessem de diversas formas! Mas se isso é natural
desse protocolo, por que alguém escolheria usá-lo?!
As características já descritas do UDP podem parecer contraprodutivas no geral, mas elas
formam um outro atributo que dá muito poder ao protocolo: a velocidade! No geral, o protocolo
UDP permite uma comunicação bastante rápida, o que é muito vantajoso.
Velocidade alta mas confiabilidade baixa, ainda parece suspeito - não funcionou no nosso caso.
Acontece que o UDP justamente não é feito para esse tipo de caso! Na verdade, o UDP tem sua
grande vantagem quando se trata de serviços cuja velocidade é fundamental e a perda mínima de
dados não muito desvantajosa.
Arquitetura de Sistemas Computacionais e Projetos - EAD Projetos
- EAD Professora: Adisnéia Pereira
Um exemplo é com jogos online, em que é normal alguns bytes se perderem na
comunicação,mas que é sempre importante que a aplicação continue rodando com rapidez (sem
se importar tanto com as perdas e falhas), para que não ocorra o famigerado lag.
Mas e agora? Se o UDP não serve para a gente, o que podemos usar em seu lugar?
Diferença entre TCP e UDP
É certo que não existe um protocolo certo ou errado, nem um melhor ou pior que outro por
essência. O que existe são situações diferentes, e essa é a chave para trabalhar com aplicações
que se comunicam com diferentes máquinas.
Nesse post, entendemos algumas das diferenças entre os dois principais protocolos da camada
de transporte dos modelos da Internet: o UDP e o TCP. Assim, entendemos a importância de
ambos os protocolos e quando devemos preferir um ou outro.
Ao final, como resumo, podemos entender que o UDP serve melhor casos em que a integridade
constante dos dados não é essencial (é menos importante que a velocidade da comunicação),
como em livestreams de vídeos e jogos online.
Por outro lado, o TCP funciona melhor em casos que a confiabilidade do transporte de dados é o
foco, como quando trabalhamos com comunicação em texto ou com documentos.
O mais importante, portanto, é entender as diferenças entre os protocolos e, assim, saber qual
utilizar em cada caso. Assim, teremos uma aplicação mais funcional!
Fragmentação de pacotes
Endereços IP
Definição de endereço IP
Endereço IP é um endereço exclusivo que identifica um dispositivo na Internet ou em uma rede
local. IP vem do inglês "Internet Protocol" (protocolo de rede) que consiste em um conjunto de
regras que regem o formato de dados enviados pela Internet ou por uma rede local.
Basicamente, o endereço IP é o identificador que permite que as informações sejam enviadas
entre dispositivos em uma rede: ele contém as informações de localização e torna o dispositivo
acessível para comunicação. A Internet precisa de um meio de distinguir diferentes
Arquitetura de Sistemas Computacionais e Projetos - EAD Projetos
- EAD Professora: Adisnéia Pereira
computadores, roteadores e sites. O endereço IP providencia isso, além de ser uma parte
essencial do funcionamento da Internet.
O que é um IP?
Um endereço IP é uma sequência de números separados por pontos. O endereço IP é
representado por um conjunto de quatro números: por exemplo, 192.158.1.38. Cada número do
conjunto pode variar entre 0 e 255. Ou seja, o intervalo de endereçamento IP vai de 0.0.0.0 a
255.255.255.255.
Os números do endereço IP não são aleatórios. Eles são matematicamente gerados e atribuídos
pela IANA (Internet Assigned Numbers Authority, autoridade de números atribuídos à Internet), um
departamento da ICANN (Internet Corporation for Assigned Names and Numbers, corporação da
Internet para atribuição de nomes e números). A ICANN é uma organização sem fins lucrativos
que foi fundada nos Estados Unidos em 1998 para ajudar a manter a segurança da Internet e
possibilitar seu uso por todos. Toda vez que alguém registra um domínio na Internet, ele passa
por um registrador de nomes de domínio, que paga uma pequena taxa para a ICANN registrar o
domínio.
Com objetivo semelhante ao do modelo OSI no que diz respeito à divisão da arquitetura em
camadas, o TCP/IP consiste na junção dos protocolos TCP (Transmission Control Protocol –
Protocolo de Controle de Transmissão) e o IP (Internet Protocol – Protocolo de Inter-rede), dois
dos mais utilizados.
Aplicação
A camada de aplicação é o topo da arquitetura TCP/IP, tratada de forma monolítica, onde são
realizadas a maior parte das requisições para execução de tarefas na rede. Ela faz a
comunicação entre os programas e os protocolos de transporte e é responsável por tudo que está
relacionado aos serviços de comunicação que visam a interação junto ao usuário.
Transporte
A camada de transporte é a segunda camada de cima para baixo na hierarquização da
arquitetura TCP/IP, e corresponde igualmente à mesma camada no modelo OSI. Neste nível são
executadas ações relacionadas à confiabilidade e integridade dos dados por meio de funções
como o controle de fluxo, controle de erro, sequenciação e multiplexação de mensagens.
Os protocolos definidos para esta camada são o UDP (User Datagram Protocol) e o TCP
(Transmission Control Protocol), com o objetivo de garantir a conversação entre dois hosts.
Internet
A camada de internet, também conhecida como inter-redes, é responsável pela permissão de
envio de pacotes por hosts a qualquer rede e pela garantia de que esses dados cheguem ao seu
destino final. Equivalente ao que é operacionalizado na camada de rede do modelo OSI, na
arquitetura TCP/IP a camada de internet tem como embasamento os protocolos IP (Internet
Protocol) e ICMP (Internet Control Message Protocol).
Interface de rede
Esta é a camada de base da arquitetura TCP/IP, correspondente às camadas de enlace de dados
e física do OSI, onde ocorre a conexão básica do host com a rede por meio de algum protocolo
capaz de enviar pacotes IP. É por meio desta camada que é possível transmitir dados a outros
computadores dentro de uma mesma rede física, além de realizar o envio do datagrama recebido
pela camada de internet através de meios físicos.
A rede é dividida em camadas, cada uma com uma função específica. Os diversos tipos de
protocolos de rede variam de acordo com o tipo de serviço utilizado e a camada correspondente.
Conheça a seguir as principais camadas e seus tipos de protocolos principais:
camada de aplicação:
WWW, HTTP, SMTP, Telnet, FTP, SSH, NNTP, RDP, IRC, SNMP, POP3, IMAP, SIP, DNS,
PING;
camada de transporte: TCP, UDP, RTP, DCCP, SCTP;
camada de rede: IPv4, IPv6, IPsec, ICMP;
camada de ligação física: Ethernet, Modem, PPP, FDDi.
1. IP
2. TCP/IP
4. FTP
Significa Protocolo de Transferência de Arquivos (do inglês File Transfer Protocol). É a forma
mais simples para transferir dados entre dois computadores utilizando a rede.
O protocolo FTP funciona com dois tipos de conexão: a do cliente (computador que faz o pedido
de conexão) e do servidor (computador que recebe o pedido de conexão e fornece o arquivo ou
documento solicitado pelo cliente).
Arquitetura de Sistemas Computacionais e Projetos - EAD Projetos
- EAD Professora: Adisnéia Pereira
O FTP é útil caso o usuário perca o acesso ao painel de controle do seu site. Assim sendo,essa
ferramenta pode ser usada para realizar ajustes página, adicionar ou excluir arquivos, ou ainda
solucionar qualquer outra questão no site.
5. SFTP
6. SSH
SSH (Secure Shell, já citado acima) é um dos protocolos específicos de segurança de troca de
arquivos entre cliente e servidor. Funciona a partir de uma chave pública. Ela verifica e autentica
se o servidor que o cliente deseja acessar é realmente legítimo.
O usuário define um sistema de proteção para o site sem comprometer o seu desempenho. Ele
fortifica a segurança do projeto e garante maior confiança e estabilidade na transferência de
arquivos.
7. SSL
Sigla para Internet Control Message Protocol (Protocolo de Mensagens de Controle da Internet).
Esse protocolo autoriza a criação de mensagens relativas ao IP, mensagens de erro e pacotes de
teste.
Ele permite gerenciar as informações relativas a erros nas máquinas conectadas. O protocolo IP
não corrige esses erros, mas os mostra para os protocolos das camadas vizinhas. Por isso, o
protocolo ICMP é usado pelos roteadores para assinalar um erro, chamado de Delivery Problem
(Problema de Entrega).
9. SMTP
Protocolo para transferência de e-mail simples (Simple Mail Transfer Protocol) é comumente
utilizado para transferir e-mails de um servidor para outro, em conexão ponto a ponto.
As mensagens são capturadas e enviadas ao protocolo SMTP, que as encaminha aos
destinatários finais em um processo automatizado e quase instantâneo. O usuário não tem
autorização para realizar o download das mensagens no servidor.
10. TELNET
Protocolo de acesso remoto. É um protocolo padrão da Internet que permite obter uma interface
de terminais e aplicações pela web. Fornece regras básicas para ligar um cliente a um intérprete
de comando.
Ele tem como base uma conexão TCP para enviar dados em formato ASCII codificados em 8 bits,
entre os quais se intercalam sequências de controle Telnet. Assim, fornece um sistema orientado
para a comunicação bidirecional e fácil de aplicar.
11. POP3
Acrônimo para Post Office Protocol 3 (Protocolo de Correios 3). É um protocolo utilizado para
troca de mensagens eletrônicas. Funciona da seguinte forma: um servidor de email recebe e
armazena mensagens. O cliente se autentica ao servidor da caixa postal para poder acessar e ler
as mensagens.
Arquitetura de Sistemas Computacionais e Projetos - EAD Projetos
- EAD Professora: Adisnéia Pereira
Assim, as mensagens armazenadas no servidor são transferidas em sequência para o
computador do cliente. Quando, a conexão é encerrada as mensagens ainda são acessadas no
modo offline.