OK, então vamos nos aprofundar nos detalhes do IPv4. Cada pacote IP possui um endereço IP e uma porta de origem e um endereço IP e uma porta de destino. Um endereço IP é para o computador inteiro, portanto o endereço IP é suficiente para levar um pacote do computador A para o computador B. Se você tiver dois serviços em execução em um computador, como e-mail e servidor da Web, os pacotes IP precisam alcançar o serviço correto. A seleção do serviço certo é feita com base nas portas.
Se um cliente quiser se conectar a um servidor como um servidor da Web ou um servidor de email, o cliente precisará conhecer o endereço IP do servidor. Em um navegador da Web, você insere o nome DNS ou o endereço IP do servidor. Em um cliente de e-mail, você também digitou o nome do servidor de e-mail. Portanto, quando o cliente deseja se conectar ao servidor, a única coisa que falta é a porta. Para tornar isso mais fácil, existem padrões que definem qual porta é usada / reservada para qual serviço. Para http, por exemplo, a porta 80 é reservada. Um servidor da Web está apenas ouvindo na porta 80, mas ignorando outras portas.
Se você quiser, pode configurar um servidor web para escutar qualquer porta que quiser, pode também ser, por exemplo, a porta 12345. Mas então os clientes precisariam digitar http://ip:12345/
para que o navegador da Web saiba em qual porta entrar em contato o servidor da web. Apenas atribuir http://ip/
seria um atalho para http://ip:80/
.
Então, como você viu, o servidor está trabalhando em uma porta bem definida, ele está recebendo pacotes enviados para destination = server-ip: server-port e enviando pacotes com source = server-ip: server-port. Do lado científico, o sistema operacional está abrindo um novo soquete para cada nova conexão e atribuindo uma porta única (ainda não usada) ao soquete. Qual porta é usada não é relevante. O cliente é quem está iniciando uma conexão, ele envia pacotes com source = client-ip: client-port para o servidor. O servidor pode ver a fonte do pacote e agora sabe quem está conectando-o e onde ele deve enviar as respostas.
Cada quádruplo servidor-ip: servidor-porta: cliente-ip: cliente-porta identifica exclusivamente uma conexão.
Os clientes visualizam as conexões como de saída, os servidores as visualizam como recebidas. Os firewalls podem ter regras de saída (enviando pacotes) e podem ter regras de entrada (recebendo pacotes). Se você quiser bloquear conexões http de / para o seu computador, a única coisa que você sabe é a porta que o servidor está usando. Portanto, quando você quiser bloquear navegadores da Web em seu computador, deverá definir uma regra de firewall de saída de negação para destination = port 80. Se quiser bloquear outros computadores para que eles não possam conectar um servidor da Web que você está executando em seu computador Em seguida, você deve definir uma regra de firewall de entrada de negação para destination = port 80.
Mais algumas coisas que você não pediu:
- Nem todo serviço tem uma porta IP designada / reservada.
- Existem também protocolos para procedimentos especiais de descoberta de serviços.
- O intervalo de portas (16 bits) é dividido em duas partes. Os números de porta 1-1024 são reservados para processos administrativos / do sistema, enquanto números de porta mais altos podem ser usados por qualquer pessoa.