İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

File Transfer Protokolü-FTP

Giriş

Internet standartları daha güçlü olan ve daha yaygın kullanılan bir dosya transfer protokolü olan FTP'yi (file transfer protocol) içerir. FTP iki makine arasında dosya transferi yapılabilmesi için prosedürler tanımlar.

FTP, oldukça alışılmadık bir biçimde, makineler arasında iki mantıksal bağlantı sağlar. Bağlantılardan biri, makineler arasında login için kullanılır. Bu bağlantı TELNET protokolünü kullanır. Şekil 11-4'de bu kavram gösterilmiştir. Son kullanıcı bir protokol çeviricisi (PI) ile haberleşir. Bu PI kontrol bağlantısını yönetir. PI, kullanıcı ve PI'ın dosya sistemi arasında bilgiyi transfer etmelidir. Komutlar ve cevaplar kullanıcı-PI ve sunucu-PI arasında iletilir. Şekilde gösterildiği gibi, diğer makinenin (sunucunun) PI'sı, yönetim bağlantıları için de TELNET protokolünü cevaplar.

Şekil 11-4 FTP Modeli

Dosya transferi sırasında, veri yönetimi, ‘data transfer process (DTP)' denilen diğer mantıksal bağlantı ile sağlanır. Bir kere DTP fonksiyonlarını gerçekleştirince ve kullanıcının isteği sağlanınca, PI bağlantıyı kapatır.

FTP aynı zamanda üçüncü-taraf transferi olarak bilinen bir işleme izin verir. Şekil 11-5'de görüldüğü gibi bir istekçi, ikisi de sunucu olarak davranan iki uzak makineyle bağlantı kurar. Böyle bir bağlantının amacı istekçinin, iki sunucunun dosya sistemi arasında dosya transfer izni almak için, istek yapmasıdır. Eğer istek onaylanırsa, bir sunucu diğer sunucuyla bir TCP bağlantısı oluşturur ve gönderici FTP modülü, veriyi TCP modülleri boyunca ilerleterek alıcı FTP modülüne transfer eder.

Veri tipleri

FTP'nin farklı tiplerdeki veri gösterilişlerini ve makineler arası bu tiplerin nasıl kullanılacağına dair müzakere yapılmasını destekleme yeteneği sınırlıdır. FTP kullanıcısı transferde kullanılacak bir tip tanımlayabilir (örneğin, ASCII, EBCDIC, vs.). ASCII default tiptir, ve FTP kurulduğu sistemde ASCII kodunun desteklenmesini gerektirir. EBCDIC de aynı zamanda desteklenir ve mainframe host bilgisayarları arasında veri transferlerinde biraz daha yaygın olarak kullanılır.

ASCII ve EBCDIC bir ikinci parametre kullanarak karakterlerin format kontrol amaçları için kullanılacağını veya kullanılamayacağını belirtirler. Örneğin carriage return (CR), line feed (LF), dikey tab (VT), ve form feed (FF) FTP oturumu boyunca kontrol karakterleri temsil etmek üzere tanımlanabilirler.

Şekil 11-5 FTP ile üçüncü-taraf transferi

FTP, bit nehirlerinin transferini de destekler. Bu bit nehirlerine imaj tipleri denir. Bu işlemle, veri sürekli bit nehirleri içinde gönderilir. Gerçek transfer için veriler, 8-bit baytlara paketlenir. Çoğu işlem ikilik imajlar iletmek için imaj tiplerini kullanır. Böylece çoğu FTP uygulamaları imaj tipini destekler.

FTP yerel bir tipi de destekler. Bu tip baytlar içerisinde iletilir ve burada bayt büyüklüğüne byte size denilen bir parametre ile karar verilir. FTP'de byte size değeri ondalık bir tamsayı olarak gösterilir.

FTP komutları ve cevapları

FTP, ön tanımlama, password yetkisi, ve dosya transfer işlemleri için bazı komutlar kullanılır. Tablo 11-3'de bu komutların kısaltmalarını ve fonksiyonlarının kısa bir tanımlamasını bulabilirsiniz.

Tablo 11-3 FTP Komutları

FTP aynı zamanda iki proses arasında doğru dosya transferi yapmak için belli sayıda cevaplar tanımlar. Adından da anlaşılabileceği gibi, bu cevaplar FTP komutlarının bir sonucu olarak istenir. Cevaplar üç-basamaklı bir sayıyı takip eden tanımlayıcı metinlerden oluşurlar. Cevapların ilk basamağı 1-5 arası bir değer alabilir. Bu değer cevapların beş ana tipini belirtmek için kullanılır. Tablo 11-4'de cevapların ana tiplerini ve fonksiyonlarının kısa açıklamalarını bulabilirsiniz.

Tablo 11-4 FTP Cevap Kodları

Cevap kodlarının y değeri, cevabın doğası ile ilgili ek bilgi içermek üzere, kodlanabilir. Bu koddaki cevap tipleri, 0-5 arası altı değeri alarak; statü komutları, yazım hataları, yetki komutları, kontrol, veri bağlantı komutları, vs. gibi ilgili cevapları tanıtırlar. Tablo 11-5'de bu kodlar listelenmiştir ve tanımlanmıştır.

Tablo 11-5 FTP Cevap Kodları

Üçüncü basamak cevabın anlamı ile ilgili daha detaylı bir seviye tanımlar. Bu kodlar çeşitlidir ve bu bitirme tezinin bakışının ötesindedir ancak bunların kullanımı ile ilgili bir örnek kısaca sunulmuştur. FTP cevap kodlarının bu detay seviyesi üzerinde daha fazla bilgi edinmek için RFC 959'a başvurunuz.

Bir FTP oturumunda işlemlerin sırası

FTP iki kullanıcı arasında veri transferini sağlamak için belirli iyi-sıralanmış adımlar takip eder. Bu bölümde adımlar oluş sırasına göre anlatılacaktır.

Uzak host'a login

İki kullanıcı arasında veri transferi oluşmadan önce, login işlemi tamamlanmalıdır. Bu login'in fonksiyonlarından biri password'ların, yetki kodlarının, ve diğer güvenlik özelliklerinin yeterli olduğunu garantilemektir. Minimum olarak, bir kullanıcı; diğer host cihazının kabul edebileceği bir kullanıcı ismine ve password'a sahip olmalıdır.

Login işlemi süresince,veri transferini kontrolde kullanılacak bazı tabloların değiştirilmesi olasıdır. Eğer bir kullanıcı farklı bağlantılar için farlı destek servisleri istiyorsa, bu fonksiyon çok kullanışlı olur.

Dizin tanımı (directory definition)

Bu özellik gerekli olabilir veya gerekli olmayabilir. Dizin tanımı ile, bir kez kontrol bağlantısı sağlanınca, verinin yerleşeceği boşluğu yönetmek için dizin değiştirilebilir.

Dosya transfer tanımı

Bu üçüncü işlem, dizini kullanarak, bir alt-komutlar listesi aracılığıyla transfer edilecek dosyayı tanımlar. FTP çok geniş bir alt-komutlar repertuarını destekler. En yaygınları GET ve PUT'tur. Bunlar bir dosyanın uzak host'tan bir yerel dosya sistemine, veya yerel dosya sisteminden uzak host'a kopyalanmasına olanak sağlarlar.

Mod transfer tanımı

FTP dosya transfer prosesinin sıradaki adımı, transfer boyunca kullanılacak mod tipinin tanımlanmasını içerir. Basitçe, bu adım verinin nasıl gösterileceğinin ve bitlerin nasıl transfer edileceğinin tanımlanmasını sağlar. FTP bu işlemleri destekleyecek belirli alt-komutlar içerir:

Veri transferinin başlatılması

Bu adım, FTP komutlarının birçoğu ile başlatılabilir. Örneğin, retrieve komutu kullanılarak işlemler başlatılabilir veya append komutu kullanılarak var olan bir dosyaya kayıtlar eklenebilir.

Veri transferinin durdurulması

Veri transferinin durdurulması oldukça basittir. Durdurma FTP QUIT alt-komutunun kullanılması ile başarılabilir. Bu alt-komut FTP işlemlerini yürüten host'un bağlantısını keser. Bazen bağlantı kesimine sebep vermeyen, CLOSE alt-komutu kullanılır. Eğer CLOSE kullanırsanız, FTP aktif kalır ve başka bir kullanıcı OPEN alt-komutu ile yeni bir oturum başlatabilir.

FTP işlemlerine örnekler

Bu bölümde, işlemlerin özetlenmesi ve şimdiye kadar sunulan FTP bilgi parçacıklarının toparlanması amacıyla örnekler sunulmuştur.

FTP konum-sürümlü olması açısından, diğer belirli internet protokollerine benzerdir. Bu nedenle, belirli konum diyagramlarını göstererek, konuyu örneklerle açıklamak faydalı olacaktır. Tüm örneklerde aşağıdaki tanımlamaları kullanacağız:

Şekillerde her bir işlemi, fonksiyon kutularından çıkan cevap kodları ile gösterdik. Cevap kodları 1yz, 2yz, 3yz, 4yz, ve 5yz gibi kodlanmışlardır (Bunları daha önce tartışmıştık). Hatırlayalım ki, yz değerleri cevaplarla ilgili daha özel bilgi verirler.

Bu şekillerin genel notasyonu Şekil 11-6'dan görülebilir. Şekilde CMD etiketli bir kod gösterilmiştir. Bu komut işlemi başlatarak bir bekleme konumu (wait state) yaratır. Buna karşılık verecek cevap kodları işlemin başarısını veya hatasını belirtir. Bunu aklımızda tutarak, FTP'nin belirli işlemlerinin bir tartışmasını yapalım.

Tekrar Şekil 11-6'ya bakalım. Bu şekilde, FTP işlemlerinin birçoğu için model olan bir konum diyagramı (state diagram) gösterilmiştir. Şekil 11-6'daki model şu komutları desteklemektedir: ABOR, DELE, CWD, CDUP, SMNT, HELP, MODE, NOOP, PASV, QUIT, SITE, PORT, SYST, STAT, RMD, MKD, PWD, STRU, ve TYPE (Bu komutların kısa açıklamaları için Tablo 11-3'e bakabilirsiniz.). Şekilde ‘CMD' komutu yerine bu komutlardan birini yerleştirebilir ve akış şemasının kalanını takip ederek olası çıkışlara karar verebilirsiniz.

Şekil 11-6 Elemanter İşlemlerde kullanılan FTP Konum Diyagramı

Şekil 11-7, cevap kodu 1'in protokol cihazını tekrar bir bekleme konumuna getirmesi dışında, önceki şekildekine benzer bir diyagramdır. Bu diyagram şu komutları destekler: APPE, LIST, NLST, REIN, RETR, STOR ve STOU.

Şekil 11-7 Diğer Opsiyonlar için FTP Konum Diyagramı

Şekil 11-8'de login prosedürü için konum geçiş işlemleri gösterilmiştir. Şekilde gösterildiği gibi, işlem bir kullanıcı (USER) mesajının yayınlanması ile başlar. Bunu takiben, password (PASS) ve accounting (ACCT) mesajları yayınlanarak login işlemlerinin başarılı, başarısız veya hatalı yapıldığına karar verilir.

Bir dosya gönderme örneği

Şekil 11-8'de bir doya gönderme örneği verilmiştir. Şeklin üst tarafında bir retrive (RETR) komutuna verilebilecek cevaplar gösterilmiştir. Şeklin alt tarafında cevapların sırası gösterilmiştir: Öncelikli cevaplar ilkin, takip eden cevaplar sonra, pozitif ve negatif tamamlama cevapları en son olarak gösterilmiştir. Analizi yapabilmek için Tablo 11-6'daki, RETR'ın cevap kodlarının numaralarını şekil 11-8'deki numaralar ile eşleştirin. Hatırlayalım ki, FTP standardında başka pek çok cevap kodu tanımlanmıştır.

Şekil 11-8 Gönderme İşlemlerine Örnek
Tablo 11-6 Şekil 11-8 ile İlgili Kodlar

FTP'nin minimum kurulumu

Tüm FTP kurulumları en azından kutu 11-7'de gösterilen servisleri ve komutları desteklemelidirler.

Tablo 11-7 FTP'nin minimum kurulumu
İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır