FTP
Internet protokoli |
---|
Sloj aplikacije |
BGP • DHCP • DNS • FTP • HTTP • IMAP • IRC • LDAP • MGCP • NNTP • NTP • POP • RIP • RPC • RTP • SIP • SMTP • SNMP • SOCKS • SSH • Telnet • TLS/SSL • XMPP |
Transportni sloj |
TCP • UDP • DCCP • SCTP • RSVP • ECN |
Internet sloj |
IP • IPv4 • IPv6 • ICMP • ICMPv6 • IGMP • IPsec |
Sloj veze |
ARP • NDP • OSPF • Tunneling protocol • L2TP • PPP • Media access control • Eternet • DSL • ISDN • FDDI |
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