Porta TCP / UDP vs Port Forwarding

-3

Uma das coisas que sinto falta de compreensão é protocolos de rede / internet. Então, talvez minha pergunta seja burra.

Se bem entendi, as portas TCP / UDP são "locais" para o servidor e o software cliente e são relevantes somente nos dispositivos que mantêm a conexão; e as portas inseridas em endereços IP externos com dois pontos são "locais" para o roteador, pois são relevantes apenas para o roteador e no interesse de encontrar um dispositivo sem um endereço externo exclusivo.


Então, se eu estiver correto, eu só quero ter certeza, se você tem uma função definida:

TCPserver.listen(string ip, int port)

Então eu poderia fazer (dependendo da implementação do curso):

TCPserver.listen("123.456.789:18735", 1337)

E os dois portos não teriam nada a ver um com o outro e nunca poderiam interferir um com o outro?


Se não estou certo, o que estou errado?

hugabor
fonte
-1 Você escreve o "If I understand it correctly, TCP/UDP ports are "local" to the server and client software"QUE? "and are only relevant on the devices maintaining the connection"O QUE? "and the ports tacked on"O QUE? "and the ports tacked on to external IP addresses with a colon are 'local' to the router in that they are only relevant to the router "NÃO e o quê? "and in the interest of finding a device without a unique external address" O QUE? Quem está tentando encontrar dispositivos com endereços IP duplicados. Por que você teria dispositivos com endereços IP duplicados? Wat na terra ave u bin readin
barlop
O que você quer dizer se dissesse que as portas TCP / UDP não são locais para o servidor? O que você quer dizer se eles são relevantes para dispositivos que "mantêm" a conexão? O que na terra faz "manter a conexão" significa. Você escreveu uma quantidade inacreditável de rabiscos, está tão longe da realidade. É como se você estivesse apenas usando sua imaginação.
Barlop
E esta linha TCPserver.listen("123.456.789:18735", 1337)pode muito bem estar errada .. muito possivelmente deveria ser 127.0.0.1 ou 0.0.0.0 e não ter um número de porta dentro do que talvez deveria ser apenas o IP. Que língua é essa? E 1337é o hacker infantil, que normalmente não é baseado em uma compreensão adequada.
Barlop
como, provavelmente, o primeiro parâmetro para essa função deve ser apenas um IP
barlop

Respostas:

0

O ouvinte está na máquina local. O IP especificado para o ouvinte informa qual interface de hardware (rede) deve ser observada, obviamente na porta especificada.

Se o ouvinte estiver configurado em um endereço externo (externo à máquina, como em não localhost), a solicitação de entrada poderá ser recebida de outras máquinas na rede.

Na maioria dos casos, como parece ser o seu caso, haveria um roteador instalado entre a conexão à Internet e o computador.

O trabalho do roteador é direcionar o tráfego para a máquina apropriada. Para disponibilizar seu serviço a partir da Internet, você precisaria informar ao seu roteador que uma solicitação no IP público (WAN / Internet) deve ser encaminhada ao servidor correto.

Isso é feito ativando o encaminhamento de porta na configuração do roteador, escolhendo a porta pública e o IP e a porta privados de destino.

Aqui está um exemplo simples de uma configuração de servidor da Web que contornaria um bloco ISP de solicitações da porta 80 de entrada:

WAN/public IP: 1.2.3.4
LAN: 192.168.0.0/24 (router's IP would typically be 192.168.0.1)
web server: 192.168.0.10:80

Como a porta 80 é bloqueada pelo ISP, usaremos a porta 8080, então nosso link seria http://1.2.3.4:8080. No roteador nós encaminharíamos a porta 8080 para 192.168.0.10:80.

Julie Pelletier
fonte
Portanto, se eu estiver hospedando um servidor em um dispositivo conectado a um roteador que tenha o encaminhamento de porta configurado, o que um cliente precisa saber para enviar uma mensagem. Pode socket.send("public.ip:port", "message")ser suficiente ou precisariam especificar uma porta TCP também?
abraço
Seu comando já inclui uma porta. O manipulador de conexão do sistema operacional do cliente atribuirá uma porta local para gerenciar a conexão de saída, mas seu aplicativo não precisa saber disso. Observe que o envio de dados em um soquete é uma operação de nível muito inferior ao envio de uma mensagem de bate-papo, por exemplo. Para ser útil, ele precisa operar em uma camada de aplicação, portanto, seguindo um determinado protocolo, como FTP, HTTP, SSH, etc.
Julie Pelletier
Se o cliente não puder direcionar uma porta TCP, e a porta colocada no ip público for apenas para um roteador em potencial, que encaminha a mensagem, o que significa "escutar uma porta"?
abraço
Eu expliquei isso na minha resposta. O servidor por trás do roteador escuta portas específicas para esse serviço. Portas diferentes normalmente serão usadas para a máquina para fornecer serviços diferentes.
Julie Pelletier
Ninguém "escuta uma porta" Um computador pode escutar em uma porta. A terminologia oficial, padrão, já é ruim o suficiente, não há razão para se desviar dele e torná-lo ainda pior
barlop