Mir ist nicht ganz klar, worauf sich deine Frage bezieht.
Ich gehe einmal davon aus, daß es entweder um Port-Forwarding oder um Freigaben bei einer Firewall geht. Dabei muß Du grundsätzlich eines verstehen, und zwar den Begriff "related". Die meisten Firewall-Implementierungen und auch NAT arbeiten nach dem statefull packet Prinzip, dabei werden zu einer Verbindung gehörende Verbindungen als zulässig und zuordenbar angesehen.
Nun erst einmal grundsätzlich, was ist ein Verbindung? Nehmen wir einmal den trivialen Fall einer Anfrage an einen HTTP-Server. Hier kontaktiert dein Rechner einen Webserver. Dein Rechner (Browser) startet von einem hohen Port aus eine Anfrage an einen Webserver an den Port 80. Dein Betriebssystem weiß, daß der Ausgangsport eine Anfrage an die Server-IP mit dem Port 80 eine Verbindung aushandelt und daß die Verbindung eine bestimmte Sequenznummer hatte. Das Paket erreicht den Server, welcher entscheidet, ob er die Verbindung aktzieptiert. Er antwortet auf das Paket und erhöht die Sequenznummer um 1 und verweist deinen Rechner an einen freien höheren Port.
Ein Statefull-Packet-Filter oder NAT erkennt anhand Sequenznummer und Adressen, daß diese verbindung von innen initialisert wurde und erlaubt die zugehörigen Verbindungen.
Es gibt allerdings auch Protokolle (gerade Messaging oder Chats) bei denen es nicht in der Form läuft. Hier gibt es nämlich aktiv initiierte verbindungen vom Server aus. Du kontaktierst den Server auf seinem "Triggerport" um eine Verbindung anzumelden, der Server selbst startet von sich aus Verbindungen an deinen Rechner. Diese Verbindungen kann ein Statefull-Packet-Filter oder NAT von sich aus nicht zu einer bestehenden Verbindung zuordnen, deswegen müssen solche Ports generell weiter geleitet werden, oder mittels recht komplizierter Filterregeln oder Proxys analysiert werden. Da die meisten handelsüblichen Router und Firewalls für den Heimbereich solche Filterregeln nicht abarbeiten können bleibt also nur das generelle freigeben und bei Routern, weiterleiten an eine IP im LAN.
Bei UDP liegt das Problem oft ähnlich. Hier ein kleiner Ausfulg in Protokolle:
TCP ist Verbindungsorientiert. Jedes Paket hat eine um 1 höhere Sequenznummer als das vorherige und die Pakete werden in Reihenfolge zusammen gesetzt. Fehlt zwischen Paket x und paket x+2 das Paket x+1, so ist dies ein Fehler und Paket x+2 wird verworfen um x+1 neu anzufoerdern. Bei UDP ist dem nicht so. Pakete können generell in recht beliebiger Reihenfolge eintrudeln, wodurch sich UDP eigentlich nur für Verbindungen eigenet, bei denen Einzelpakete nicht so wichtig ist, wie z.B. bei Video oder Audiodaten. Hier liegt oftmals dann auch ein Problem von Firewalls oder NAT (dieser Ausflug hatte jetzt aber wenig mit "Trigger" und "Public" Ports zu tun).
Grundsätzlich gilt aber, daß man bei Protokollen, welche aktive Rückkanäle, also vom Zielserver selbst initiierte Verbindungen welche nicht dem Schema der Ursprungsverbindung entsprechen, beinhalten Ports generell freigegeben werden müssen, da NAT-Router oder Firewalls meist keine Kenntnis vom Protokoll haben um diese Verbindungen zuordnen zu können.