FTP

Из Википедије, слободне енциклопедије
Иди на навигацију Иди на претрагу

FTP (енгл. File transfer protocol – протокол за пренос датотека) је најчешће коришћен протокол за пренос података између два рачунара на мрежи. FTP користи TCP/IP за мрежну комуникацију, што омогућава да буде поуздан и сесијски оријентисан.

FTP веза се успоставља на захтјев клијентског рачунара према серверском рачунару. Клијентски рачунар мора да посједује програм који имплементира FTP протокол (тзв. FTP клијент), а серверски рачунар мора да посједује програм који прихвата конекције на стандардном FTP порту и такође разумије команде протокола FTP (тзв. FTP сервер или FTP демон). Када се веза успостави, клијентски програм шаље корисничке команде серверском програму, који их обавља и шаље одговор. Тај одговор може бити порука да је команда успјешно обављена, датотека која је захтијевана или порука о грешци.

FTP команде[уреди]

Следе најчешће коришћене команде протокола FTP:

HELP захтев за списак свих подржаних команди
OPEN [име серверског рачунара] команда којом FTP клијент успоставља конекцију са FTP сервером
USER [име корисника који се пријављује на систем] команда којом се корисник представља удаљеном систему и захтева приступ. Корисник може дати своје корисничко име уколико је регистрован на удаљеном систему, или стандардно име anonymous за приступ јавном директоријуму FTP сервера, ако га има.
PASS [лозинка представљеног корисника на удаљеном систему] уколико се користи корисничко име anonymous, лозинка представља имејл-адресу корисника; у супротном се задаје лозинка корисника на том систему.
QUIT прекидање FTP конекције. Може се користити и еквивалентна команда BYE.
LS [име* удаљеног директоријума/датотеке или без аргумената] са задатим именом удаљеног директоријума, ово је захтјев за списак датотека и поддиректоријума у том директоријуму. Уколико се не зада ниједан аргумент, подразумијева се текући директоријум. Уколико се зада име датотеке, као одговор се шаље исто то име (тиме можемо да потврдимо постојање неке датотеке).
CD [име директоријума на удаљеном рачунару] промена текућег директоријума на удаљеном систему
LCD [име директоријума на клијенту] промена текућег директоријума на клијенту.
PUT [име локалне датотеке] команда за слање локалне датотеке на удаљени систем. Уколико је име датотеке исправно задато, трансакција почиње сместа. Послата датотека се смешта у текући директоријум на удаљеном рачунару.
GET [име удаљене датотеке] захтев за пренос удаљене датотеке на локални рачунар. Датотека се смешта у текући директоријум локалног рачунара.
DELETE [име удаљене датотеке] команда за брисање датотеке на удаљеном рачунару
RENAME [име удаљене датотеке] команда за преименовање датотеке на удаљеном рачунару
RMDIR [име удаљеног директоријума] брисање удаљеног директоријума. Директоријум се на овај начин може обрисати само ако је празан.
MKDIR [име новог удаљеног директоријума] команда за креирање новог директоријума на удаљеном рачунару.
PWD команда за добијање апсолутне стазе до текућег директоријума на удаљеном рачунару

*име се увек може задати као само име директоријума или датотеке, али и као комплетна стаза до истог, релативна или апсолутна.

Када FTP клијент упути команду FTP серверу, FTP сервер одговара троцифреним бројем, који представља код одговора. Кодови су одређени FTP стандардом и користе се ради брже размене података, а клијентски програми најчешће интерпретирају ову поруку за корисника на језик разумљив људима. На основу одговора корисник зна да ли се команда извршила успешно и како да настави рад.

Архитектура FTP сесије[уреди]

FTP сесија се заправо састоји од две сесије: сесије за трансфер (DTP - енгл. Data Transfer Process) и контролне сесије (PI - енгл. Protocol Interpreter). Контролна сесија се покреће прва и шаље захтев за успостављање везе удаљеном рачунару. Након провере идентитета и успостављања двосмерне везе, клијент је у могућности да шаље команде за обављање различитих задатака.

Успостављање TCP/IP везе се врши са порта изабраног методом случајног избора, а порт на ком FTP сервер очекује конекције је по стандарду увек 21.

Када клијент направи захтев за пренос података, тада се активира сесија за трансфер која врши сам пренос. За то вриеме контролна сесија мора остати активна како би се команде и поруке могле размењивати између клијентског и серверског рачунара.

FTP клијенти[уреди]

Програми који имплементирају FTP протокол и дозвољавају крајњем кориснику да успостави конекцију и врши размену датотека са удаљеним рачунарима се зову FTP клијенти. У почетку развоја Интернет технологије, ови програми су били врло прости и дозвољавали су само директан унос FTP команди. Временом уз развој графичких интерфејса ови програми су постали комфорнији за рад и крајњи корисник не мора да зна команде да би користио протокол, него системом прозора и менија задаје захтеве. На тржишту се налази мноштво комерцијалних као и бесплатних програма, а најчешће долазе и уз сам оперативни систем.

Критике[уреди]

  • И лозинке и садржаји датотека се преносе без шифровања, бајт по бајт, те могу бити пресретнути и искоришћени за неовлашћен приступ серверу и самом пренешеном садржају. Разна проширења FTP-а решавају овај проблем убацујући међуслојеве за шифровање користећи алгоритме попут SSL-а или TLS-а.
  • Протокол користи више конекција у једној трансакцији, једну за контролну сесију, по једну за сваки захтев. Ово отежава рад администраторима задуженим за контролу заштитног зида.
  • У активном режиму рада, клијент одабира произвољан порт за комуникацију са сервером, што такође отежава рад заштитног зида који пропушта садржај само на одређеним портовима. Овај проблем се најчешће решава користећи пасивни режим рада.
  • Могуће су злоупотребе у FTP уграђених могућности за преусмеравање садржаја да би се садржај преусмерио на неки други рачунар.
  • FTP има велике застоје у раду због великог броја команди потребних за почетак трансакције.
  • Не постоји контрола интегритета података - ако се трансакција прекине из неког разлога, прималац нема начин да провери да ли је примљени садржај комплетан. Одређени сервери садрже проширења која уз садржај шаљу и MD5 суму (користећи команду SITE MD5) или CRC одсечак, али чак и тада је неопходно да их клијент експлицитно затражи. У недостатку таквих метода, провера комплетности се најчешће одвија независно од FTP протокола.
  • При преносу датотека, не преносе се и додатни подаци попут датума креирања, последње измјене и сл. По пријему, датотеци се додељују тренутни датум и време. Проширења FTP-а, попут SFTP-а, дозвољавају и пренос оваквих атрибута. Тренутно је у плану да се проширењем стандарда FTP-а укључе и овакве могућности, али већина популарних клијената и сервера за FTP то још увијек не подржава.

Литература[уреди]

  • Brian Komar, 1999., „TCP/IP“, Компјутер библиотека. ISBN 86-7310-037-2

Спољашње везе[уреди]

Види још[уреди]