FTP Sunucu-Sunucu Etkileşimi-II
Ağ Çalışma Grubu
Yorum İsteği (Request for Comments): 478
NIC: 14947
B. Bressler
B. Thomas
BBN
26 Mart 1973
Cambridge’de BBN’de yakın zamanda yapılan FTP toplantısında ele alınan konulardan biri sunucu-sunucu etkileşimiydi. Tipik bir durumda, iki sunucu (B, C) ile iletişim kuran bir kullanıcı (A), bir siteden (B) bir dosya alıp bunu diğerine (C) göndermekle ilgilenir.
+------+
| USER |
| A |
/+------+\
control control
/ \
+------+ +------+
|SERVER| DATA |SERVER|
| B |----------->| C |
+------+ +------+
Toplantının ortak görüşü, B ve C’nin birbirlerinden haberdar olmasını sağlamak ve her birini, yerel soketler henüz mevcut değilken RFC’leri sıraya koymaya zorlamadan bir veri bağlantısının kurulmasına olanak tanımak için mekanizmalara ihtiyaç olduğuydu.
Bu soruna önerilen çözüm PASSIVE (PASV?) adlı bir komuttu. Aşağıda, komutun anlamı ve nasıl kullanılacağına ilişkin vardığımız sonuç yer almaktadır.
Üçüncü taraf bağlantıları, "Veri bağlantını kurmak için Ana Makine H üzerindeki S soketini kullanmaya hazır ol" anlamına gelen SOCK komutu ve "Veri soketini dinleme için aç ve bir aktarım komutu alındığında, bir RFC başlatmak yerine bir RFC bekle" anlamına gelen PASV komutu kullanılarak kurulacaktır.
PASV komutuna verilen olumlu bir onay, veri soketinin dinleme için açıldığını gösterir. PASV komutunu olumlu şekilde onayladıktan sonra veri soketine yönelik bir RFC geldiğinde, sunucu veri bağlantısını açmak için eşleşen bir RFC ile yanıt vermelidir (elbette gelen RFC’nin, varsa önceki SOCK komutlarıyla tutarlı olduğu varsayılarak).
+---------------+
| |
+----------| USER PROCESS |----------+
| | A | |
telnet +---------------+ telnet
| |
| |
+-----------+ +-------------+
| |--------> --------->| |
| SERVER |data sockets data socket| SERVER |
| B | Sb Sc | C |
| |<-------- <---------| |
+-----------+ +-------------+
KULLANICI A’DAN SUNUCU B’YE
A->B SOCK HOST-C SKT- Sc
B->A ACK
A->B PASV
B->A ACK
A->B STOR
KULLANICI A’DAN SUNUCU C’YE
A->C SOCK HOST-B SKT- Sb
C->A ACK
A->C RTRV
- PASV komutu onaylandıktan sonra, dinleme işlemi PASV komutuyla gerçekleştiğinden, iki veri aktarım komutu herhangi bir sırayla gönderilebilir.
- Kullanıcı, protokol tarafından belirtildiği üzere Sc ve Sb soket numaralarının veri soketleri olduğunu bilir.
- Bir SOCK komutunun, PASV gönderilecek olan aynı Ana Makine’ye gönderilmesinin zorunlu olmadığına dikkat ediniz. Ona bir SOCK komutu göndermek, gelen RFC’nin denetlenebilmesi açısından güvenlik sağlar.
RB/nlg
Bu RFC, çevrimiçi RFC arşivlerine girilmek üzere Helene Morin tarafından, Via Genie 12/1999 tarihinde makine tarafından okunabilir biçime dönüştürülmüştür.