Esse site utiliza cookies
Nós armazenamos dados temporariamente para melhorar a sua experiência de navegação e recomendar conteúdo do seu interesse.
Ao utilizar os nossos serviços, você concorda com as nossas políticas de privacidade.
Esse site utiliza cookies
Nós armazenamos dados temporariamente para melhorar a sua experiência de navegação e recomendar conteúdo do seu interesse.
Ao utilizar os nossos serviços, você concorda com as nossas políticas de privacidade.
Categoria de Tecnologia
Postado em 02 maio 2022
Atualizado em 23 junho 2023
Palavras-chave: protocol,protocolo,tcp,udp,internet,packet,pacote,transmission,transmissão
Visualizações: 9327
A entrega de encomendas pelo correio é possível porque cada casa tem um endereço único. Na internet acontece a mesma coisa. Cada dispositivo conectado à internet possui um endereço único, atribuído pelo servidor DHCP.
Porém, além de casas, existem os apartamentos que compartilham o mesmo endereço com outros apartamentos. Para um entregador encontrar o apartamento destino para fazer a sua entrega, ele vai precisar do número do apartamento. Na internet acontece exatamente a mesma coisa.
A porta é um número que é adicionado no final do endereço IP. A porta é vinculada a um aplicativo que está em execução na máquina cujo endereço IP foi atribuído.
No exemplo acima, caso a máquina com o endereço IP 192.168.11.2 permita o acesso na porta 80, uma outra máquina pode acessar o seu conteúdo através da porta 80. Na porta 80, geralmente é permitido o acesso através do protocolo HTTP.
Mesmo tendo o endereço IP de alguma máquina hospedeira, não significa que podemos ter total acesso à ela. Só é possível acessar os aplicativos permitidos pela máquina hospedeira. Uma máquina é programada para permitir acesso em determinadas portas apenas para máquinas autorizadas através da internet.
Quando uma máquina disponibiliza um serviço através de uma porta, ela se torna um servidor. A diferença entre um servidor e um computador é o seu papel na transferência de dados. A máquina que acessa outro computador é chamada de cliente e a máquina que fornece dados é chamada de servidor.
Um computador pode servir como cliente ou servidor. Quando visualizamos algum conteúdo na internet, nosso dispositivo se torna o cliente e o dispositivo que fornece o conteúdo é o servidor. O servidor é capaz de controlar os acessos com tecnologias como firewall e evitar múltiplos acessos em um curto período de tempo (DoS) para aumentar a segurança e manter a acessibilidade.
Uma máquina pode ter múltiplas portas e permitir mais do que um tipo de acesso. Um exemplo é a computação em nuvem que deve ter as suas portas configuradas para permitir o acesso remoto dos clientes através de protocolos específicos e seguros.
Obs: Porta é a expressão em português na área de informação para expressar a palavra “port”. Ambas palavras “porta” e “port” possuem significados diferentes se traduzidas em sua utilização ordinária. Essas palavras só possuem o mesmo significado se usadas na área de informação.
Considere o endereço IP abaixo:
O endereço IP acima é apenas o endereço IP de alguma máquina conectada à internet. Mesmo não tendo uma porta definida, as configurações desse servidor encaminham o cliente para a porta que permite o acesso. Se o acesso for feito através do navegador e o acesso for permitido, provavelmente a porta que o cliente será encaminhado será 443, onde geralmente atua o protocolo HTTPS.
O número da porta pode ser arbitrário. Porém, utilizamos algumas portas como padrão para alguns aplicativos. A porta 80 é usada como porta padrão para a visualização de sites através do navegador, ou seja, o protocolo HTTP.
Além dessa porta, existem muitas outras portas padrões. Algumas delas são:
Porta | Protocolo |
---|---|
20, 21 | FTP |
22 | SSH |
25 | SMTP |
53 | DNS |
67, 68 | DHCP |
80 | HTTP |
110 | POP3 |
443 | HTTPS |
A razão para usarmos uma porta padrão é para facilitar a identificação do aplicativo que está sendo executado em cada porta. Porém, como medida de segurança, alguns programadores usam portas aleatórias para o acesso.
Em resumo, para um servidor poder ser acessado através da internet, ele precisa ser configurado para liberar uma porta para o acesso externo. Mesmo se um computador ter um endereço IP e estar conectado com a internet, não é possível acessar essa máquina. Entretanto, há excessões onde uma máquina é infectada com malwares como o RAT para obter acesso remoto sem a permissão de um servidor.
A maioria dos protocolos usados na internet são extensões dos protocolos TCP e UDP. Os protocolos TCP e UDP são a base para muitos protocolos usados hoje na internet.
No modelo OSI, o TCP (protocolo de controle de transmissão) é utilizado na camada de transporte. O TCP permite uma conexão orientada e garante a entrega de dados seja feita entre o servidor e o cliente. Um conexão orientada significa que o servidor e o cliente deve estabelecer a conexão primeiro, e em seguida fazer a transferência de dados.
A unidade de dados básica do TCP é chamada de segmento. Um segmento tem um cabeçalho (header) e carga útil (payload). No cabeçalho são armazenadas informações sobre o segmento, uma dessas informações é a porta de origem e destino.
Durante o tráfego dos segmentos, imprevistos como problemas de conexão podem acontecer durante o caminho. Nesse caso o TCP reenvia os segmentos e certifica que os dados chegaram em segurança na outra máquina para encerrar a conexão.
Apesar do TCP garantir o envio de dados, ele tem um ponto negativo: a latência. A latência pode se tornar um problema para clientes e servidores que necessitam transferência de dados volumosas em tempo real. Por isso, o TCP é usado em ocasiões onde a latência não apresenta prejuízos para a experiência do usuário, como em e-mails, visualização de sites e download de arquivos.
Assim como o TCP (protocolo de datagrama do usuário), o UDP também também atua na camada de transporte. A unidade de dados do UDP é o datagrama e assim como o segmento TCP, possui cabeçalho e carga útil. A grande diferença do UDP com o protocolo TCP é que ele não garante que os dados cheguem ao computador cliente. O UDP simplesmente continua enviando dados de forma contínua para o cliente sem verificar se os dados chegaram no outro lado. Outro fato importante é que no UDP, um servidor pode realizar troca de dados com múltiplos clientes, ou seja, vários clientes podem acessar um único servidor ao mesmo tempo.
Mesmo não garantindo a entrega de dados, essa forma de transmissão pode ser vantajosa para aplicativos que necessitam alta velocidade de transmissão, como vídeos, jogos online ou conversas online.
Como documentado no RFC 1180, os protocolos TCP e UDP ficam situados acima do IP que é o endereço lógico da máquina conectada com a internet externa.
A imagem acima mostra a estrutura simplificada dentro de um computador que pode se conectar com a internet. Fora do quadrado, há o campo chamado “conexão” que indica um cabo que conecta o computador com a internet. ARP é um protocolo que gerencia o endereço MAC em relação ao endereço IP. ENET é a forma simplificada de “Ethernet” que indica um cabo com acesso a internet conectado diretamente ao computador.
Observando a imagem acima é possível observar que os protocolos TCP e UDP utilizam o endereço IP para fazer a comunicação entre computadores. No quadrado “IP”, a informação chega em pacotes IP (IP packets) que contém no seu cabeçalho (header) o tipo de protocolo a ser utilizado (TCP ou UDP) na conexão. Na carga útil (payload) do pacote IP, os dados podem ser segmentos TCP ou datagramas UDP. Em outras palavras, um endereço IP usando a mesma porta pode fazer transferência de dados com UDP ou TCP. Porém, há portas que só suportam TCP e portas que suportam apenas UDP.
Abaixo temos uma lista típica dessas portas:
Porta | Protocolo | Transmissão |
---|---|---|
20, 21 | FTP | TCP |
22 | SSH | TCP |
25 | SMTP | TCP |
53 | DNS | TCP, UDP |
67, 68 | DHCP | UDP |
80 | HTTP | TCP |
110 | POP3 | TCP |
443 | HTTPS | TCP |
Exemplo de comunicação TCP e UDP.
A IANA (Autoridade para Atribuição de Números da Internet) é responsável por gerenciar as portas, os aplicativos que atuam nas portas e os protocolos utilizados. Mesmo não sendo padronizado pela IANA aplicativos podem ser vinculados a portas arbitrárias e usar o protocolo mesmo não sendo reconhecido oficialmente.
É importante lembrar que o uso de portas não oficializadas pode levar a problemas de compatibilidade com outros sistemas ou dispositivos de rede, especialmente se houver interação com serviços de terceiros. Alguns sistemas de firewall ou roteadores podem bloquear ou restringir o tráfego em portas não oficializadas por padrão.
Ao usar portas não oficializadas, é recomendável documentar e comunicar claramente a porta que está sendo usada, a fim de evitar conflitos ou problemas de conectividade com outros sistemas.
Aplicativos podem escolher entre TCP e UDP para atender as suas exigências, porém não podem usar ambos protocolos simultaneamente na mesma porta. É importante vincular os aplicativos com seus respectivos protocolos em portas documentadas pela IANA para evitar problemas de compatibilidade no futuro.
Projetos práticos
Simulação dos gráficos do segundo turno das eleições presidenciais, utilizando python e ferramentas de análise de dados, pandas e jupyter.
Programando o clássico jogo da serpente usando o framework p5.js. Tutorial indicado para iniciantes da programação que querem aprender os conceitos básico da área criando jogos.
Detectando objetos que entram dentro do campo de visão do personagem. Útil para servir de "gatilho" para eventos em um jogo.
Convertendo imagens para ascii art usando o valor da intensidade das cores cinzentas.
Programando um jogo clássico de arcade usando javascript e p5.js. O usuário deve quebrar os blocos utilizando uma bola ao mesmo tempo que evita que a bola saia pela parte inferior da tela
Existe muitos programadores que escrevem algoritmos mal planejados. Essa falta de planejamento dificulta a manutenção do aplicativo e aumenta a probabilidade de novos bugs.
O envenenamento de cache DNS redireciona o usuário para um site falso, mesmo digitando um URL legítimo. Como isso é possível??!!
Protocolo é um conjunto de regras a serem seguidas para tornar possível a comunicação entre dois dispositivos ou computadores.
Serviço disponível na internet que oferece softwares que permitem realizar atividades como verificar e-mails, armazenar fotos e compartilhar arquivos.
Protocolo utilizado para buscar endereços IPs vinculados com um URL solicitado através de um navegador ou aplicativo de email.
Protocolo de transferência de mensagens projetado especialmente para a comunicação de dispositivos IoT, sendo eficiente em sistemas com recursos limitados.