FTP

Datu savienojuma atvēršanas metodes

FTP par transporta slāņa protokolu lieto tikai TCP. Ienākošajiem savienojumiem FTP serveri pēc noklusējuma lieto 21 portu. Klienta savienojums uz šo portu ir vadības savienojums (control connection). Caur šo savienojumu klients sūta komandas serverim un serveris sūta atbildes, bet šo savienojumu nelieto pašu failu pārsūtīšanai. Failu pārsūtīšanai FTP lieto datu savienojumus, kurus var izveidot dažādos veidos.
Active mode (aktīvais režīms) - klients savā galā atver nejauši izvēlētu portu (porta numurs virs 1024) un serverim nosūta šo porta numuru. FTP serveris pēc tam izveido savienojumu ar šo portu un var sūtīt vai saņemt datus.
Lai šajā režīmā atvērtu datu savienojumu, klients nosūta komandu PORT, kuras argumenti ir klienta IP adrese un atvērtais ports. adrese:ports te ir kā 6 skaitļu virkne. "h1,h2,h3,h4,p1,p2", pirmie 4 skaitļi atbilst IP adresei, atlikušie divi - portam. Piem. ja IP adrese ir 192.168.0.2 un atvērtais ports ir 1025, tad klients nosūta komandu "PORT 192,168,0,1,4,1". ports ir h1*256+h2, šajā gadījumā 4*256+1.
Passive mode (pasīvais režīms) - serveris savā galā atver nejauši izvēlētu portu (porta numurs virs 1024) un paziņo to klientam, kurš uz turieni veido savienojumu.
Lai šajā režīmā izveidotu datu savienojumu, klients nosūta komandu PASV, uz kuru serveris atbild apmēram šādi: "227 Entering Passive Mode (127,0,0,1,78,52)", kur šie seši skaitļi ir ar apmēram tādu pašu nozīmi kā PORT komandas argumenti aktīvajā režīmā.
Eksistē arī extended passive mode, kas ir līdzīga pasīvajam režīmām, tikai lieto citādāku argumentu formātu.
Tajā laikā, kad notiek datu pārraide caur datu savienojumu, vadības savienojumā nekas nenotiek. Tas dažreiz rada problēmas ar lielu failu pārsūtīšanu, ja pa vidu ir ugunsmūri, kas vardarbīgi pārtrauc vadības savienojumu.
FTP protokols nodrošina iespēju atsākt norautas lejupelādes izmantojot REST komandu. Šīs komandas arguments ir faila lejuplādētās daļas izmērs baitos. Augšuplāžu atsākšana ir problemātiskāka, jo nav precīzi zināms, kurā vietā pārsūtīšana pārtrūka, lai arī eksistē REST analoga APPE komanda. Failu izmēru var noteikt no direktoriju saraksta vai ar SIZE komandu.

NAT–PT

Īpaši priekš FTP protokola darbības caur ugunsmūri tika izveidots NAT paplašinājums, kuru nosauca par NAT-PT (rfc2766), kurš ļauj veidot ienākošos savienojumus no servera uz klientu caur NAT. Izveidojot šādu savienojumu NAT maina sūtāmos datus, kas tiek pārsūtīti no klienta, norādot serverim patieso adresi un portu, ar kuru serveris var izveidot savienojumu un pēc tam pārraida savienojumu no servera no šīs adreses uz klienta adresi. Neskatoties uz visiem pasākumiem un jauninājumiem, kas likti lietā, lai atbalstītu FTP protokolu, praksē, NAT-PT funkcija visos maršrutētājos tiek atslēgta, lai sniegtu papildus drošību pret vīrusu draudiem.

FXP

FXP (angliski File eXchange Protocol – Failu apmaiņas protokols) - veids, kā pārsūtīt failus starp diviem FTP serveriem pa tiešo, neielādējot datus savā datorā. Izveidojot FXP sesiju klients atver divus FTP savienojumus uz diviem dažādiem serveriem, pieprasot failu no pirmā servera norāda komandā PORT otra servera IP adresi.
Par viennozīmīgu priekšrocību FXP standarta atbalstā ir tas, ka gala lietotājus, kuri vēlas kopēt failus no viena FTP servera uz citu, vairs neietekmē viņu interneta pieslēguma ātruma ierobežojumi. Nav nepieciešamības sev lejupielādēt failu, lai pēc tam augšupielādētu to uz citu FTP serveri. Tātad, failu pārsūtīšanas ātrums būs atkarīgs tikai no interneta savienojuma ātruma starp diviem attālinātajiem FTP serveriem, kas lielākajā daļā gadījumu ir krietni ātrāks par lietotāju interneta pieslēgumiem.
FXP tagad sākuši izmantot hakeri, lai uzbruktu citiem serveriem; komandā PORT tiek norādīta IP adrese un ports, kuru izmanto serviss, kuram tiek veikts uzbrukums, un ar komandām RETR / STOR tiek veikts pieprasījums uz šo portu kā no FTP servera, nevis no uzbrūkošā datora, kas ļauj veikt liela mēroga DDoS uzbrukumus izmantojot uzreiz vairākus FTP serverus, vai apiet upura datora drošības sistēmu, ja tas pārbauda tikai klienta IP adreses, kas norādīta komandā PORT, atbilstību FTP klienta IP adresei un pēc noklusējuma aizliedz izmantot trešo pušu IP adreses. Tādējādi FXP nav iespējams izmantot strādājot ar publiskajiem FTP serveriem.