FTP, of File Transfer Protocol, is een standaard netwerkprotocol dat wordt gebruikt voor het overbrengen van bestanden tussen een client en een server op een computernetwerk. Het werkt op de applicatielaag van de TCP/IP-protocolsuite en ondersteunt zowel anonieme als geverifieerde toegang.
Het FTP-protocol regelt hoe bestanden worden overgedragen en beheerd tussen de client en de server. Het maakt gebruik van een besturingsverbinding (meestal op TCP-poort 21) voor het geven van opdrachten en het coördineren van bestandsoverdrachten, terwijl afzonderlijke gegevensverbindingen dynamisch tot stand worden gebracht (met behulp van TCP-poort 20 voor de actieve modus of andere poorten voor de passieve modus) om daadwerkelijke bestandsgegevens over te dragen.
Het dataprotocolnummer dat aan FTP is gekoppeld, hangt af van het feit of het in de actieve of passieve modus werkt. In de actieve FTP-modus initieert de server een dataverbinding terug naar de client op TCP-poort 20. In de passieve FTP-modus initieert de client zowel controle- als dataverbindingen, waarbij de server een IP-adres en poortnummer voor de dataverbinding verstrekt.
Een gegevensverbinding in FTP verwijst naar de afzonderlijke TCP-verbinding die tot stand is gebracht tussen de client en de server, specifiek voor het overbrengen van bestandsgegevens. In actieve FTP-modus opent de server een gegevensverbinding met het door de client opgegeven IP-adres en poortnummer. In passieve FTP-modus maakt de client verbinding met het opgegeven IP-adres en poortnummer van de server voor gegevensoverdracht.
FTP ondersteunt verschillende gegevenstypen voor het overbrengen van bestanden, waaronder:
- ASCII-modus (of tekstmodus): Geschikt voor het overbrengen van tekstbestanden, waarbij regeleinden worden geconverteerd zodat ze overeenkomen met de conventies van het doelsysteem (bijvoorbeeld CR-LF voor Windows, LF voor Unix).
- Binaire (of afbeeldings)modus: Gebruikt voor het overbrengen van binaire bestanden, waarbij de exacte byte-voor-byte inhoud van het bestand zonder wijziging behouden blijft.
- EBCDIC-modus: wordt gebruikt voor het overbrengen van bestanden tussen systemen met behulp van EBCDIC-tekencodering, die voornamelijk voorkomt in oudere IBM-mainframesystemen.
De keuze van het gegevenstype in FTP hangt af van de aard van de bestanden die worden overgedragen en zorgt ervoor dat bestanden correct worden geïnterpreteerd en bruikbaar zijn op het doelsysteem.