Port triggering is pretty simple once you know what port forwarding is. Port Triggering is port forwarding with an on/off switch for the ports that have been forwarded. This on/off switch is turned on or off by data flowing out of a trigger port.
What Is Port Forwarding?
Port forwarding is a way of getting data into your network from the internet. It is implemented in your router and is required by many services such as gaming and security cameras. Once you set up a port forward it points to a single device on your network and it continues to be open until you close it.
For more information about what port forwarding is visit our Understanding Port Forwarding guide.
What Is Port Triggering?
Port triggering is a special kind of port forward that is created automatically by your router when it is needed and then removed when it is not. This makes a port trigger more secure than a port forward because it only exists when you are actively using it. It also allows the forwarded port to follow you around on your network as you move from device to device.
Port Triggering vs. Port Forwarding
Port Triggering is a little more secure than port forwarding because the incoming ports are not open all the time. They are only open when a program is actively using the trigger port. Another thing to note is that most port triggering setups do not require you to enter an internal IP address to forward the incoming ports to. This means that any computer on the network can use your port triggering setup. If two computers try to use the port triggering setup at the same time you will run into problems.
3 Reasons to use port triggering:
- You don't have to set up a permanent IP address.
- The port is closed when you are not triggering it.
- The trigger can follow you from device to device.
How does port triggering work?
The images below show the flow of data through a router with a port triggering rule. Port triggering creates a temporary port forward to the device that sends data out on the trigger port. Data is allowed to flow to a device only when the trigger port is sending data.
Let's say that there is a port triggering rule configured in the router. This port triggering rule says when data flows out on port 50 forward port 80. In the picture above you see data flowing from a computer to the internet on port 50.
The router sees the traffic coming out of the router on port 50, and evaluates its triggering rules. The router then forwards port 80 to the computer that sent out the data on port 50.
When a different device sends out a port trigger packet on port 50, the router automatically adjusts the port forward to point at the new device.
Programs do not send data if there is nothing to be sent, so data being sent out on port 50 is not guaranteed 100% of the time. When data is no longer being sent out on port 50, the router keeps port 80 forwarded for a certain amount of time. How much time really depends upon the router. Eventually, after the router is done waiting, it quits forwarding port 80 to the computer that sent data out on port 50.
What happens when you are trying to keep a port forward open but the application has not sent a trigger packet in a while? The router times out and closes the forward. Any incoming connection requests will be rejected until the router receives another trigger. It is important to only use port triggering in a situation where you know that a trigger packet will make it to the router often enough to keep your forwards open.
This makes a port triggering configuration a tricky thing. The software that requires ports to be forwarded must first send data out of a port at a somewhat constant rate. If the software has a port that is constantly sending data out, then port triggering is possible. The length of time that the router keeps those ports open still needs to be taken into account. If the router times out between the gaps of outgoing data, the port forwarding connection will be severed. That is why so few programs support port triggering.
For more information about port forwarding visit our Ultimate guide to port forwarding your router.