Tenho um servidor web com clientes SignarR. A topologia é:
Cliente -- Caddy -- IIS
Cliente - Apenas cliente JS SignalR.
Caddy - Como proxy reverso.
Arquivo exe comum ou serviço WSL 1. (Tentei as duas opções e são as mesmas na minha pergunta). Porta 8811 a 8082. IIS - Aplicativo Api baseado em .Net 8.
Notei que cada cliente cria três conexões TCP, 1 para Caddy + 2 "Espelhadas", embora eu espere duas, Cliente -- Caddy + Caddy -- IIS.
saída netstat (8811 - caddy, clientes conectam-se aqui. 8082 - ligação de site IIS):
TCP 192.168.21.42:8811 CLIENT:57803 ESTABLISHED
TCP 127.0.0.1:8082 SERVER:50121 ESTABLISHED
TCP 127.0.0.1:50121 SERVER:8082 ESTABLISHED
O que significam as linhas 2 e 3?
Por que eles estão ao mesmo tempo?
O Netstat não mostra conexões – ele mostra soquetes.
Um socket é uma ponta de uma conexão (um 'handle' no Windows ou um 'file descriptor' no Linux) mantida por um programa. Então, se você tem dois programas se comunicando por 'localhost' na mesma máquina, então haverá duas entradas no netstat para cada conexão TCP – o socket "outgoing" mantido por um programa e o socket "incoming" mantido pelo outro. Adicionar
-b
(ou-p
para Linux) mostraria o processo correspondente.As colunas 'Local' e 'Remoto' são da perspectiva de cada programa, portanto, o soquete mantido pelo IIS (conexão de entrada aceita) terá 127.0.0.1:8082 como o endereço 'Local', enquanto o soquete criado pelo Caddy (conexão de saída) terá o mesmo como remoto.