Cursos / Redes de Computadores / Redes de Computadores I / Aula

arrow_back Aula 13 - Protocolo TCP

Definindo qual número de porta utilizar

Agora você precisa entender como é definido o número de porta que cada aplicação vai utilizar. A atribuição de portas às aplicações funciona da seguinte maneira:

  • Uma aplicação que pretende transmitir e/ou receber informações pela rede solicita uma porta ao sistema operacional. Ela pode informar o número da porta desejado ou deixar que o sistema operacional escolha uma.
  • Caso a aplicação tenha informado o número de porta desejado, o sistema operacional analisa sua lista de números de portas ainda não atribuídas para as aplicações para ter certeza que o número solicitado está livre. Se ele estiver livre, esse número de porta é atribuído a aplicação. Caso o número solicitado já esteja sendo utilizado, será gerado um erro. Quando a aplicação não sugere nenhum número de porta o sistema operacional escolhe um número dessa lista e o atribui a aplicação.
  • O sistema operacional retira da lista de portas livres o número da porta fornecido à aplicação.
  • O sistema operacional insere em uma lista de portas utilizadas o número da porta fornecido e o programa que solicitou a porta.

Como você pode observar na Figura 2, quando uma máquina transmite um pacote ela insere no cabeçalho de transporte o seu número de porta e o número da porta da aplicação com quem ela deseja se comunicar.

A afirmação anterior levanta duas questões muito importantes. A primeira é que tanto a aplicação cliente (que envia o pacote) quanto a servidora (que receberá o pacote) precisam de números de portas. Portanto, as duas realizaram o procedimento de pedir um número de porta ao sistema operacional. A segunda questão é como as aplicações sabem o número de porta utilizado pela outra, uma vez que o cliente e o servidor quase sempre utilizam portas diferentes. Vamos responder a essa segunda questão a seguir.

  1. Porta nas aplicações que atuam como servidores

Os servidores utilizam um número de porta padronizado, ou seja, cada tipo de aplicação da internet (web, e-mail, DNS etc.) utiliza uma porta específica. Pegue como exemplo dois tipos de aplicações da internet que você utiliza: e-mail, e web. Os números de porta utilizados na Figura 2 não foram números inventados! A grande maioria dos servidores de e-mail utilizam a porta 25 e a grande maioria dos servidores web utilizam a porta 80 (pois são as portas padrões destes serviços). Desse modo, quando um programa cliente de e-mail vai conectar em um servidor ele envia os pacotes para a porta 25. Do mesmo modo, quando o seu browser vai acessar um servidor web ele envia os pacotes para a porta 80 do servidor.

Se você criar uma aplicação, você pode definir a porta que ela vai utilizar e deixar essa informação disponível para todos. Isso foi feito para as aplicações de banco de dados, por exemplo. O servidor de banco de dados SQL Server, por exemplo, utiliza a porta 1433, enquanto o servidor de banco de dados MySQL utiliza a porta 3306.

Você pode estar pensando como esse número de porta é utilizado se você nunca o informa em nenhuma aplicação que utiliza! No browser, por exemplo, você coloca apenas o nome da máquina que quer conectar. A questão é que quando você não informa nenhum número de porta, os programas o inserem automaticamente nos pacotes que eles geram. O número de porta inserido é sempre o número de porta padrão para aquele tipo de aplicação. Quando a aplicação for um browser, por exemplo, o número inserido será 80, que é o número da porta padrão utilizada pelos servidores web.

Uma vez que os programas servidores sempre utilizam a mesma porta, talvez você já tenha percebido que eles sempre solicitam um número de porta específico ao sistema operacional. Os servidores web, por exemplo, solicitam a porta 80 e os servidores de e-mail solicitam a porta 25.

Como a maioria das aplicações padrão da internet, como e-mail, web, DNS, FTP, entre outras, utilizam portas abaixo de 1024, para que um programa possa solicitar uma porta abaixo desse número, o usuário executando o programa precisa ser o administrador da máquina. Isso foi feito para impedir que um programa de um usuário comum obtenha a porta utilizada por um desses serviços. Se isso acontecesse, um usuário com conta no servidor web de uma empresa poderia, por exemplo, fazer uma página igual a da empresa e se passar por ela. Essas portas abaixo de 1024 são chamadas de portas reservadas.

Versão 5.3 - Todos os Direitos reservados