Klienten initierar en aktiv öppen för kontrollanslutningen och en passiv öppen för dataanslutningen i vissa nätverksscenarier, främst för att ta itu med brandväggs- och NAT -traversalproblem. Låt oss bryta ner varför:
* Kontrollanslutning (aktiv öppen): Kontrollanslutningen används för att upprätta parametrarna för dataöverföringen, till exempel typen av data, porten som ska användas för dataöverföring och all nödvändig autentisering. Klienten initierar denna anslutning aktivt eftersom den måste berätta för servern vad den vill göra. Servern lyssnar passivt på en välkänd port (t.ex. 22 för SSH, 21 för FTP). Brandväggen tillåter vanligtvis inkommande anslutningar till dessa etablerade portar, vilket underlättar initieringen av klientens kontrollanslutning.
* Dataanslutning (passiv öppen): När kontrollanslutningen är etablerad lyssnar servern ofta passivt för klientens dataanslutning. Detta görs av flera skäl:
* nat traversal: Nätverksadressöversättning (NAT) kan komplicera saker. En klient bakom en NAT -router kan ha en privat IP -adress som inte är direkt rutbar för internet. Att ha servern att lyssna passivt betyder att klienten bara behöver känna till serverns offentliga IP -adress och port, och servern hanterar detaljerna för att ta emot dataförbindelsen. Servern kan använda tekniker som portforskning eller protokoll som NAT -traversal (t.ex. stun eller turn) för att underlätta detta.
* brandväggsbegränsningar: Brandväggar är ofta konfigurerade för att vara mer restriktiva för utgående anslutningar än inkommande anslutningar. Genom att få servern att lyssna passivt behöver klienten bara initiera en utgående anslutning till serverns kontrollport, vilket vanligtvis är tillåtet. Den inkommande dataförbindelsen till klientens dynamiskt tilldelade port kan vara svårare att tillåta genom brandväggen. Observera att klienten * fortfarande * måste initiera dataförbindelsen.
* Säkerhet: I vissa fall ses det som säkrare för servern att passivt acceptera dataförbindelsen. Detta kan erbjuda ett visst skydd mot vissa attacker, även om den primära fördelen här är NAT och brandväggsövergångar.
Kort sagt, kombinationen av en aktiv kontrollanslutning och en passiv dataförbindelse är en vanlig strategi för att arbeta kring begränsningarna och säkerhetsbegränsningarna som brandväggar och NAT sätter. Klienten fastställer aktivt kontrollkanalen för att förhandla om villkoren, och servern accepterar passivt datakanalen för att förenkla NAT -traversal och kanske förbättra säkerheten. Den exakta implementeringen varierar beroende på protokollet (FTP, SSH, etc.).