FTP nutzt TCP als Transportschicht, welches wiederum verbindungsorientiert arbeitet. Das heißt eine Seite muss auf dementsprechenden Port zuhören und es ist kein "punch through" möglich. Sprich wenn du P2P mit FTP/TCP realisieren willst und die Clients hinter Routern o.ä. sitzen, muss zumindest ein Teil die Ports öffnen. kA ob das für deinen Anwendungsfall praktikabel ist.
Einen Port "öffnen" muss man dann, wenn er vorher geschlossen war, was ich so interpretieren würde, dass da unter keinen Umständen Traficc passieren kann (bspw. wenn Port 80 "geschlossen" wäre/blockiert werden würde, könnte man keine Website öffnen). Es ist eher so, dass die Portweiterleitung eingestellt werden muss, damit der Router bei eingehenden (nicht ausgehenden) Anfragen weiß, wohin diese Anfragen weitergeleitet werden sollen.
Das ist bei UDP genau das gleiche und spielt hier also keine Rolle. Es hat auch nichts damit zu tun, dass TCP verbindungsorientiert ist.