De client initieert een actieve opening voor de besturingsverbinding en een passieve opening voor de dataverbinding in bepaalde netwerkscenario's, voornamelijk om problemen met firewall- en NAT-traversal op te lossen. Laten we uitleggen waarom:
* Controleverbinding (actief open): De besturingsverbinding wordt gebruikt voor het vaststellen van de parameters van de gegevensoverdracht, zoals het type gegevens, de poort die voor gegevensoverdracht moet worden gebruikt en eventuele noodzakelijke authenticatie. De client initieert deze verbinding actief omdat hij de server moet vertellen wat hij wil doen. De server luistert passief op een bekende poort (bijvoorbeeld 22 voor SSH, 21 voor FTP). De firewall maakt doorgaans inkomende verbindingen met deze gevestigde poorten mogelijk, waardoor het initiëren van de besturingsverbinding door de client wordt vergemakkelijkt.
* Gegevensverbinding (Passief Open): Zodra de besturingsverbinding tot stand is gebracht, luistert de server vaak passief naar de gegevensverbinding van de client. Dit wordt om verschillende redenen gedaan:
* NAT-traversal: Network Address Translation (NAT) kan de zaken ingewikkelder maken. Een client achter een NAT-router heeft mogelijk een privé-IP-adres dat niet rechtstreeks naar internet kan worden gerouteerd. Als de server passief luistert, betekent dit dat de client alleen het openbare IP-adres en de poort van de server hoeft te weten, en dat de server de details van het ontvangen van de gegevensverbinding afhandelt. De server kan technieken gebruiken zoals port forwarding, of protocollen zoals NAT traversal (bijvoorbeeld STUN of TURN) om dit te vergemakkelijken.
* Firewallbeperkingen: Firewalls zijn vaak geconfigureerd om restrictiever te zijn ten aanzien van uitgaande verbindingen dan inkomende verbindingen. Door de server passief te laten luisteren, hoeft de client alleen een uitgaande verbinding met de controlepoort van de server te initiëren, wat meestal is toegestaan. De inkomende gegevensverbinding met de dynamisch toegewezen poort van de client kan moeilijker door de firewall worden toegelaten. Houd er rekening mee dat de client *nog steeds* de gegevensverbinding moet initiëren.
* Beveiliging: In sommige gevallen wordt het als veiliger beschouwd als de server de gegevensverbinding passief accepteert. Dit kan enige bescherming bieden tegen bepaalde aanvallen, hoewel het belangrijkste voordeel hier NAT- en firewall-traversal is.
Kortom, de combinatie van een actieve besturingsverbinding en een passieve dataverbinding is een gebruikelijke strategie om de beperkingen en beveiligingsbeperkingen te omzeilen die worden opgelegd door firewalls en NAT. De client stelt actief het controlekanaal in om over de voorwaarden te onderhandelen, en de server accepteert passief het datakanaal om NAT-traversal te vereenvoudigen en misschien de beveiliging te verbeteren. De exacte implementatie varieert afhankelijk van het protocol (FTP, SSH, etc.). |