File Transfer Protocol
Funkció | Fájlmegosztás |
---|---|
Betűszó | FTP |
Kikötő |
21 (hallgatás) 20 (alapértelmezett adat) |
RFC | RFC 3659 |
File Transfer Protocol ( Protokoll a fájlátvitel ), vagy FTP , egy kommunikációs protokoll célja, hogy osszon meg fájlokat a hálózaton TCP / IP . Lehetővé teszi számítógépről fájlok másolását a hálózat másik számítógépére, vagy fájlok törlését vagy módosítását ezen a számítógépen. Ezt a másolási mechanizmust gyakran használjákegy harmadik fél által tárolt webhely táplálására.
Az FTP SSL vagy TLS által védett változatát (az SSL a TLS elődje) FTPS-nek hívják .
Az FTP betartja az ügyfél-kiszolgáló modellt , vagyis a két fél egyike, az ügyfél kéréseket küld, amelyekre a másik, kiszolgálónak hívják . A gyakorlatban a kiszolgáló egy számítógép, amely maga FTP szerver nevű szoftvert futtat , amely nyilvánosságra hozza a UNIX fájlrendszerhez hasonló fájlfát . Az FTP kiszolgáló eléréséhez egy FTP kliens szoftvert használnak ( grafikus vagy parancssori felülettel ).
FTP, amely tartozik a alkalmazási réteg a OSI modell és a ARPA modell , amely egy TCP kapcsolat .
Megállapodás szerint két port ( jól ismert port ) van allokálva az FTP-kapcsolatokhoz: a 21-es port a parancsokhoz és a 20-as adat az adatokhoz. Az úgynevezett implicit FTPS esetében a hagyományos portok a parancsok esetében 990, az adatok esetében 989.
Ez a protokoll működhet az IPv4 és az IPv6 protokollal .
Az FTP az 1971. április 16-án létrehozott RFC 114- ből származik . Ezt a specifikációt az RFC 765 1980 júniusában felváltotta . Magát az RFC 959 1985 októberében, a specifikáció végleges változatában elavulttá tette .
Számos RFC egészíti ki ezt a specifikációt, például az 1997. júniusi RFC 2228 a biztonsági kiterjesztések hozzáadásához vagy az 1998. szeptemberi RFC 2428, amelyek támogatást adnak az IPv6 protokollhoz, és új típusú passzív módot határoznak meg.
Az FTP protokoll nem mindig biztosítja a különböző platformok és különböző régiók közötti átjárhatóságot a fájlnevek kódolásának megfelelő kezelésével . Csak az RFC 2640 szabványnak megfelelő kiszolgáló és kliens szoftver garantálja ezt, köszönhetően az UTF-8 kódolásnak, és mellesleg egy új LANG parancsnak, amely lehetővé teszi, hogy kiválassza a szerver által az FTP munkamenet során visszaküldött üzenetek nyelvét . Az UTF-8 kódolás lehetővé teszi bármely ország fájlneveinek kódolását, bár a kiszolgáló mindig helyileg használhat egy specifikusabb kódolást, saját belátása szerint átalakíthatja UTF-8-ra.
Az FTP kiszolgáló eléréséhez szoftver (FTP kliens) kerül felhasználásra. Ezek a szoftverek parancssorral vagy grafikus felülettel léteznek. Az FTP szabvány annyira elterjedt, hogy ezeket a szoftvereket a legújabb Windows és Linux disztribúciók tartalmazzák.
A parancssori használat a Windows alatt, mint a Linux alatt, általában a konzolba beírt ftp address_du_server paranccsal történik . (itt az ftp a szoftver neve, a paraméter pedig a szerver neve)
A grafikus felületeken, például a webböngészőkben a szokásos formát használják, nevezetesen: ftp: // kiszolgáló címe . Itt az ftp a protokoll neve, majd a szerver neve.
A Windows ( Vista és 7 ) alatt FTP kliens szoftver van telepítve a gépre, mert a Windows része. Hozzáférhet a Számítógép mappán, majd a Hálózati hely hozzáadása paranccsal .
Az FTP-támogatás 2020 októbere óta elavult a Google Chrome- on, 2021 júliusa óta pedig a Mozilla Firefox- on .
A protokoll kétféle TCP kapcsolatot használ:
Az FTP kétféle módon használható.
Az aktív üzemmódban , az FTP kliens határozza meg a csatlakozási portot használja, hogy lehetővé tegye az adatátvitelt. Így annak érdekében, hogy az adatcsere megtörténhessen, az FTP szerver inicializálja a kapcsolatot az adatportjából (20. port) az ügyfél által megadott portba. Ezután az ügyfélnek konfigurálnia kell a tűzfalát az új bejövő kapcsolatok engedélyezéséhez, hogy az adatcsere megtörténhessen. Ezenkívül problémát jelenthet az FTP-kiszolgálókhoz hozzáférni próbáló felhasználók számára, amikor a felhasználók egy NAT- átjáró mögött vannak . A NAT működésének ismeretében az FTP-kiszolgáló úgy kezdeményezi az adatkapcsolatot, hogy csatlakozik a NAT- átjáró külső címéhez a kiválasztott porton. Egyes NAT- átjárókon nincs egyezés a fogadott csomaggal az állapottáblában, a csomagot figyelmen kívül hagyják, és nem fogják eljuttatni az ügyfélhez.
A passzív módban , az FTP szerver maga határozza meg a csatlakozási portot kell használni, hogy az adatátvitel (adatkapcsolat) és közli, hogy az ügyfélnek. Ha a kiszolgáló előtt van tűzfal, akkor azt konfigurálni kell az adatkapcsolat engedélyezésére. Ennek a módnak az az előnye, hogy az FTP szerver nem kezdeményez kapcsolatot. Ez a mód jól működik a NAT- átjáró mögött álló ügyfelekkel . Új megvalósításokban az ügyfél inicializálja és közvetlenül kommunikál a szerver 21. portján keresztül; ez leegyszerűsíti a kiszolgáló tűzfal konfigurációit.
Ez a kapcsolat szöveges módban működik, ezért könnyen szimulálható a Telnet segítségével .
Az ügyfél parancsot küld egy \r\núj sorral végződött szövegsor formájában (CR, amelyet LF követ, vagyis 0D0A hexadecimális formában, vagy a 13 és 10 karakter).
Például a következő parancs kéri a "file.txt" fájl letöltését:
RETR fichier.txtMegjegyzés : Az olyan parancsokat, mint a GET vagy a PUT, az FTP protokoll nem ismeri fel, de az FTP kliens szoftverek gyakran használják.
A parancs elküldését követően az ügyfél egy vagy több választ kap a szervertől. Minden választ egy tizedes kód előz meg, amely lehetővé teszi az FTP kliens számára a válasz feldolgozását, amely tartalmazhat egy vagy több szövegsort.
Az előző példában, ha a szerver megtalálja a kért fájlt, elküldi az ügyfélnek:
150 File status okay; about to open data connection.Attól függően, hogy az ügyfél és a kiszolgáló megállapodott-e, az egyik a meghallgatott TCP-porton hallgat, a másik pedig csatlakozik hozzá az adatkapcsolat létrehozásához. Ezután a kiszolgáló elküldi a kért fájl tartalmát az ügyfélnek, bezárja az adatkapcsolatot, és a következő választ küldi a vezérlő kapcsolaton:
226 Closing data connection.A vezérlő kapcsolat egyszerűsített formában újrafelhasználja a Telnet számára eredetileg bevezetett NVT terminálvezérlő protokollt . Ez különösen azt jelenti, hogy a 255 tizedes kód kódot használjuk a kijelző vezérlő szekvenciák bevezetésére.
Az adatkapcsolat az adatátvitel (fájl tartalma vagy fájllista) idejére jön létre. Általában egyetlen parancs adatátvitelre van beállítva, kivéve, ha a kiszolgáló másik átviteli módot választ és támogat.
A parancs PASVutasítja a kiszolgálót, hogy passzívan várja meg a kapcsolatot TCP-port meghallgatásával. A kiszolgáló által meghallgatott portot a válasz jelzi:
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).Amennyiben h1a h44 közötti egész szám, 0 és 255 képviselő IP-címét a kiszolgáló, valamint p1és p2képviseli a TCP-portot, ahol a kiszolgáló vár kapcsolatot, mint két egész szám 0 és 255 közötti ( port_TCP = p1 * 256 + p2).
Ellenkező esetben, ha az ügyfél egy TCP-porton várja a kapcsolatot, a parancs elküldésével azonos formában jelzi a meghallgatott portot PORT :
PORT h1,h2,h3,h4,p1,p2Ha minden jól megy, a kiszolgáló így válaszol:
200 Command okay.A fájlok adatkapcsolaton keresztül történő átvitelénél két mód használható:
Az FTP protokoll specifikációja megadja, hogy lehetõség van fájlok közvetlen átvitelére két FTP szerver között.