Port Forwarding as I understand it
When creating a port forwarding rule, the router keeps the specified external port open at all times, and simply forwards all inbound traffic for that port to the endpoint (private IP and port) given in the rule.
As an example, when I create the following rule...
External Port: TCP 3478
IP: 192.168.1.100
Internal Port: TCP 3478
...the router now will forward all inbound traffic on external port TCP 3478 to the endpoint at 192.168.1.100:3478.
Port Triggering as I understand it
With port triggering, the rule structure is identical to port forwarding (i.e. internal port, external port, IP, etc.), but every definition I've come across seems to say that these ports are only "triggered" when an outbound request is sent from the internal port designated in the rule. <= This is where I get confused.
I thought services (are supposed to) use randomly chosen ports from the ephemeral range, thus the actual source/internal port is highly unlikely to be whatever internal port is configured in the rule. So assuming my understanding to this point is correct, how does port triggering actually determine the correct ports to open?
I'm still learning about TCP/IP, NAT, and networking in general, so feel free to correct my terminology and anything else I may have wrong.