Som du har lärt dig i tidigare avsnitt innebär klient–server modellen att klienten kan ladda upp data till en server och ladda ner data från en server, förutsatt att båda enheterna använder ett filöverförings protokoll (FTP).
Precis som HTTP, e-postprotokoll och adresserings tjänster är FTP ett vanligt Applikationsskikts protokoll.
I detta avsnitt fördjupar vi oss i hur FTP fungerar.
File Transfer Protocol
FTP utvecklades för att möjliggöra överföring av data mellan en klient och en server.
En FTP-klient är ett program som körs på en dator och används för att skicka (push) och ta emot (pull) filer till eller från en FTP-server.
FTP (File Transfer Protocol) möjliggör tvåvägsöverföring av data mellan klient och server. Det betyder att filer kan:
- Laddas upp (push) – klienten skickar en fil till servern.
- Laddas ner (pull) – klienten hämtar en fil från servern.
FTP bygger på en separat datakanal för själva filöverföringen, vilket gör att data kan skickas i båda riktningar under samma session.

Två anslutningar – kontroll och data
FTP använder två separata TCP-anslutningar mellan klienten och servern:
- Kontrollkanal (TCP port 21)
- Upprättas först.
- Används för kommandon från klienten och svar från servern.
- Datakanal (TCP port 20)
- Upprättas varje gång data ska överföras.
- Används för själva filöverföringen.
Data kan överföras i båda riktningar:
- Klienten kan ladda ner (pull) filer från servern.
- Klienten kan ladda upp (push) filer till servern.
FTP – aktiv vs passiv anslutning
FTP använder två separata TCP-anslutningar:
- Kontrollkanalen (port 21) – för kommandon och svar.
- Datakanalen (port 20 eller annan) – för själva filöverföringen.
Det är datakanalen som beter sig olika i aktiv och passiv FTP.
Aktiv FTP (Active Mode)
Klienten initierar kontrollkanalen till serverns port 21 när en filöverföring ska ske:
- Klienten berättar (via kommandot PORT) vilken port den lyssnar på.
- Servern initierar sedan datakanalen till klientens port (från serverns port 20).
Alltså: Servern kopplar tillbaka till klienten. Dock finns ett problem:
Detta fungerar dåligt när klienten är bakom en brandvägg eller NAT, eftersom inkommande anslutningar från servern ofta blockeras.
Exempel på aktiv FTP:
Klient - Server: TCP 21 (kontroll) Server - Klient: TCP 20 (data)
- Klient – Server: TCP 21 (kontrollkanal) – Klienten initierar FTP-anslutningen till serverns port 21. Denna anslutning används för att skicka kommandon (t.ex. USER, PASS, LIST, RETR) och ta emot svar från servern. Den är ständig under sessionen — så länge klienten är inloggad.
- Server – Klient: TCP 20 (datakanal) – När det är dags att överföra data (t.ex. en fil eller katalog) händer något viktigt:
- Servern initierar en ny anslutning tillbaka till klienten.
- Den gör detta från sin port 20 till den port som klienten tidigare har uppgett via kommandot PORT. Denna kanal används enbart för själva filöverföringen.
Passiv FTP (Passive Mode)
För att lösa problemet med brandväggar används passivt läge.
- Klienten initierar kontrollkanalen till port 21.
- Klienten skickar sedan kommandot PASV till servern.
- Servern svarar med vilken port den har öppnat för datakanalen.
- Klienten initierar därefter även datakanalen till den porten.
Alltså: Klienten initierar båda anslutningarna (kontroll och data). Till skillnad från aktiv FTP fungerar passiv FTP mycket bra bakom NAT och brandväggar, eftersom all trafik startas av klienten utåt mot servern, och inga inkommande anslutningar behöver tillåtas..
Exempel på passiv FTP:
Klient - Server: TCP 21 (kontroll) Klient - Server: TCP 1025–65535 (data)
Jämförelse mellan aktiv och passiv FTP
| Egenskap | Aktiv FTP | Passiv FTP |
|---|---|---|
| Kontrollkanal | Klient – Server port 21 | Klient – Server port 21 |
| Datakanal | Server – Klient port >1023 | Klient – Server port >1023 (specificerad av servern) |
| Initiering av datakanal | Servern initierar anslutningen | Klienten initierar anslutningen |
| Fungerar bakom brandvägg/NAT | Ofta problem – inkommande anslutning blockeras | Fungerar bra – all trafik initieras av klienten |
| Används oftast av | Äldre system, interna nät | Moderna webbläsare och FTP-klienter |