VyÜlo v t²denφku: | COMPUTERWORLD |
╚φslo: | 37/93 |
RoΦnφk: | 1993 |
Rubrika/kategorie: | Co je Φφm ... v poΦφtaΦov²ch sφtφch |
Dφl: | 73 |
Jakß je ale logika, kterß stojφ za existencφ dvou protokol∙ pro netransparentnφ p°enos soubor∙? ProΦ je v²hodnΘ mφt dva?
Protokol FTP lze oznaΦit za plnohodnotn² v tom smyslu, ₧e je povinn∞ vybaven mnoha r∙zn²mi funkcemi, kterΘ vÜak nemusφ b²t zdaleka v₧dy vyu₧φvßny. Mno₧stvφ r∙zn²ch funkcφ a velk² rozsah schopnostφ vÜak znamenß v∞tÜφ, a obvykle i pomalejÜφ program, kter² takΘ zabφrß vφce mφsta jak na disku, tak i p°i svΘm b∞hu v operaΦnφ pam∞ti. V dneÜnφ dob∞, kdy se objemy operaΦnφch pam∞tφ poΦφtajφ spφÜe na megabyty, by n∞jak² ten kilobyte nemusel hrßt p°φliÜ velkou roli. P°esto jsou ale situace, kdy hraje roli v²znamnou. Tak v²znamnou, ₧e se kv∙li nφ vyplatφ pou₧φt jin² protokol, jeho₧ implementace je mΘn∞ nßroΦnß na r∙znΘ systΘmovΘ zdroje.
To, co pracovnφ stanice od bootovacφho serveru zφskßvß, mß formu soubor∙, a tak v tΘto pevnΘ pam∞ti musφ b²t implementovßn vhodn² protokol pro p°enos soubor∙, a s nφm i vÜechny protokoly ni₧Üφch vrstev, kterΘ ke svΘ prßci pot°ebuje. Je ovÜem zcela zbyteΦnΘ, aby to byl "plnohodnotn²" protokol - jeho Φinnost je v₧dy stejnß, a tak lze p°edem odhadnout, kterΘ funkce bude skuteΦn∞ vyu₧φvat a kterΘ nikoli, a implementovat jen ty skuteΦn∞ pot°ebnΘ. Velmi Φast² je i takov² p°φpad, kdy velmi mal² k≤d v pevnΘ pam∞ti naΦte ze serveru a zavede do operaΦnφ pam∞ti stanice slo₧it∞jÜφ zavßd∞cφ program, a teprve ten pak zajistφ naΦφtßnφ operaΦnφho systΘmu a vÜeho pot°ebnΘho pro start operaΦnφho systΘmu na bezdiskovΘ stanici (tomuto "vφcestup≥ovΘmu" zavßd∞nφ se v angliΦtin∞ °φkß bootstrapping).
DalÜφ motivacφ pro existenci jednoduchΘho protokolu pro p°enos soubor∙ pak jsou takovΘ aplikace, kterΘ "vymo₧enosti" plnohodnotnΘho protokolu nepot°ebujφ, dßle jednoduchΘ operaΦnφ systΘmy, kter²m Φinφ problΘmy udr₧ovat souΦasn∞ vφce otev°en²ch transportnφch spojenφ (jak to vy₧aduje protokol FTP) apod.
Pro vlastnφ p°enos vyu₧φvß protokol TFTP nespolehliv²ch a nespojovan²ch slu₧eb transportnφho protokolu UDP. S jeho nespolehlivostφ se vyrovnßvß tak, ₧e si sßm zajiÜ¥uje pot°ebnΘ potvrzovßnφ. Toto potvrzovßnφ je zajφmavΘ tφm, ₧e jde o tzv. jednotlivΘ potvrzovßnφ (tedy takovΘ, kdy odesilatel po odeslßnφ jednoho bloku Φekß na jeho explicitnφ potvrzenφ, a teprve pak vysφlß dalÜφ blok), a dßle tφm, ₧e pou₧φvß symetrickΘ Φekßnφ na vyprÜenφ ΦasovΘho limitu (tzv. timeout). Odesilatel, kter² odeslal n∞jakß data, Φekß na jejich potvrzenφ, a pokud jej nedostane do urΦitΘho ΦasovΘho limitu, vyÜle data znovu. Obdobn∞ p°φjemce, kter² data obdr₧φ, je potvrdφ odeslßnφm p°φsluÜnΘho potvrzenφ, ale pokud do ΦasovΘho limitu nedostane dalÜφ data, znovu vyÜle ji₧ jednou odeslanΘ potvrzenφ. JednotlivΘ bloky dat, kterΘ jsou tφmto zp∙sobem p°enßÜeny, majφ pevnou velikost (512 byt∙), a jsou sekvenΦn∞ Φφslovßny od 1. Podobn∞ jsou sekvenΦn∞ Φφslovßna i potvrzenφ. Konec celΘho p°enosu p°φjemce rozpoznßvß podle poslednφho bloku, kter² musφ obsahovat mΘn∞ ne₧ standardnφch 512 byt∙ (tedy nap°. i 0 byt∙).
V prvnφm (resp. nultΘm) bloku, kter²m se p°enos zahajuje, musφ b²t uvedeno p°esnΘ jmΘno souboru, kter² mß b²t p°enesen, vΦetn∞ ·plnΘ p°φstupovΘ cesty k tomuto souboru. Protokol TFTP, na rozdφl od protokolu FTP, toti₧ nepoΦφtß s tφm, ₧e by na stran∞ serveru byl nastaven na n∞jak² konkrΘtnφ adresß°. V d∙sledku toho ani neznß pojem aktußlnφho adresß°e (na serveru), neumo₧≥uje p°echßzet mezi jednotliv²mi adresß°i, a nezprost°edkovßvß ani jejich v²pis. PoΦφtß s tφm, ₧e klient p°esn∞ vφ, kde a s jak²m souborem chce pracovat.
Definice protokolu TFTP toto ponechßvß na implementaci, ale obvyklΘ °eÜenφ je takovΘ, ₧e Φφst lze jen ty soubory, kterΘ jsou ke Φtenφ p°φstupnΘ vÜem u₧ivatel∙m. V p°φpad∞ zßpisu pak rozhodujφ p°φstupovß prßva do konkrΘtnφho adresß°e (zda umo₧≥uje zßpis vÜem u₧ivatel∙m Φi nikoli), resp. p°φstupovß prßva ke konkrΘtnφmu souboru (jde-li o p°epis nebo o p°idßvßnφ za konec ji₧ existujφcφho souboru).
Protokol TFTP by byl vhodn² prßv∞ pro svou "anonymitu", dφky kterΘ by zßjemci o p°φstup k archivu nemuseli uvßd∞t ₧ßdnß u₧ivatelskß jmΘna ani hesla. Mß to ovÜem jeden mal² hßΦek - jeliko₧ protokol TFTP neumo₧≥uje prochßzet adresß°i serveru a vypisovat si jejich obsah, nemohl by si zßjemce sßm vyhledßvat to, co jej zajφmß Φi co pot°ebuje, ale musel by b²t s obsahem archivu seznßmen jin²m zp∙sobem, a pak jφt "na jistotu".
Proto se ke zp°φstupn∞nφ nejr∙zn∞jÜφch archiv∙ soubor∙ v sφtφch na bßzi TCP/IP pou₧φvß "plnohodnotn²" protokol FTP. I zde je ale mal² hßΦek - mß-li b²t archiv opravdu ve°ejn∞ p°φstupn², jak sd∞lit vÜem potencißlnφm zßjemc∙m pot°ebnΘ u₧ivatelskΘ jmΘno (a p°φpadn∞ i heslo), kterΘ majφ pou₧φt? Mo₧n²m °eÜenφm je zvolit jedno konkrΘtnφ jmΘno, a to pak pou₧φvat vÜude. Tedy vlastn∞ zavΘst jednotnou konvenci, a tu d∙sledn∞ dodr₧ovat. No a jakß ₧e tato konvence je? V sφti Internet, kterß je dnes zdaleka nejv²znamn∞jÜφ sφtφ na bßzi protokol∙ TCP/IP a pokr²vß prakticky cel² sv∞t, je touto jednotnou konvencφ u₧ivatelskΘ jmΘno anonymous (doslova: anonym). Podle n∞j jsou pak takΘ p°φsluÜnΘ ve°ejn∞ p°φstupnΘ archivy oznaΦovßny jako anonymnφ FTP servery (anonymous FTP servers). V celΘm Internetu jich je opravdu mnoho, jen jejich struΦnΘ seznamy mφvajφ desφtky strßnek.
Pokud se na n∞kter² z nich obrßtφte (v roli klienta protokolu FTP), m∙₧ete se p°ihlßsit jako u₧ivatel "anonymous". Heslo pak na vßs ji₧ v∙bec nenφ po₧adovßno, nebo jste vyzvßni k tomu, aby jste mφsto hesla uvedli svou skuteΦnou identitu (mφn∞no: svou adresu pro elektronickou poÜtu) - viz tΘ₧ obrßzek 72.3 v minulΘm dφlu serißlu. N∞kterΘ anonymnφ FTP servery pou₧φvajφ takto zφskanou informaci jen pro vlastnφ evidenci (aby m∞ly p°ehled, kdo a jak je vyu₧φvß). JinΘ anonymnφ servery vÜak mohou b²t mΘn∞ d∙v∞°ivΘ, a ov∞°ujφ si, zda vßmi uvedenß identita je skuteΦnß, Φi nikoli. A pokud dojdou k zßv∞ru, ₧e je smyÜlenß (nebo nejsou schopny jejφ pravost ov∞°it), jednoduÜe se s vßmi p°estanou bavit.