Genel Bakış
Öneri: Ağ işlemleri ve kaynak erişimi için bir Ağ Komut Dili (NCL) tanımlama.
Bağlam: ARPANET genişledikçe, host'ların aşağıdakiler için ortak bir dile ihtiyacı oldu:
- Uzak kaynaklara komutlar iletme
- Diğer host'larda işlemler yürütme
- Uzak dosya ve hizmetlere erişim
- Farklı host sistemleri arasında birlikte çalışabilirliği sağlama
İçindekiler
- Giriş
- Ağ Komut Dili Hedefleri
- Temel Komut Yapısı
- Komut Kategorileri
- Uygulama Hususları
- Standardizasyonun Faydaları
- Önem
Giriş
Problem Tanımı
Erken ARPANET host'ları şunlarla çalışıyordu:
- Farklı işletim sistemleri: UNIX, Tenex vb.
- Uyumsuz komut arayüzleri: Her host benzersiz sözdizime sahipti
- Standart uzaktan erişim yok: Kullanıcılar uzak host'larda kolayca komut çalıştıramıyordu
- Sınırlı birlikte çalışabilirlik: Her bağlantı host'a özgü bilgi gerektiriyordu
Çözüm Yaklaşımı
Birleşik bir Ağ Komut Dili şunları sağlardı:
- Uzak işlemler için ortak sözdizimi
- Kaynak keşfi ve erişimini etkinleştirme
- Heterojen ağ ortamlarını destekleme
- Platform farklılıklarını soyutlama
Ağ Komut Dili Hedefleri
Birincil Hedefler
| Hedef | Detaylar |
|---|---|
| Evrensellik | Tüm ağ host'ları tarafından anlaşılan tek dil |
| Basitlik | İnsanlar ve programlar için oluşturması kolay sözdizimi |
| Esneklik | Çeşitli komut türlerini ve işlemleri destekleme |
| Genişletilebilirlik | Uyumluluğu bozmadan yeni komutlar eklemeye izin verme |
| Verimlilik | Komut iletimi için ağ bant genişliğini minimize etme |
| Sağlamlık | Hata işleme ve durum bildirimi içerme |
Tasarım Felsefesi
NCL şunlar olmalıdır:
- Host-bağımsız: Unix, Tenex, IBM sistemlerinde çalışma
- Kullanıcı dostu: Tanıdık komut satırı arayüzlerine benzeme
- Ağ farkında: Asenkron işlemleri ve ağ gecikmelerini destekleme
- Durumsuz: Kalıcı bağlantı durumu gerektirmeme
Temel Komut Yapısı
Önerilen Komut Formatı
KOMUT [argümanlar] [seçenekler] [yönlendirme parametreleri]
Örnek Komutlar
Dosya İşlemleri
OPENFILE hostname:filepath [mode:READ|WRITE|APPEND]
CLOSEFILE filehandle
READFILE filehandle [count] [format]
WRITEFILE filehandle [data]
Dizin/Kaynak Gezintisi
LISTDIR hostname:directory [options]
GETFILE hostname:kaynak localhost:hedef
PUTFILE localhost:kaynak hostname:hedef
İşlem Kontrolü
RUNPROGRAM hostname:program [arguments]
KILLPROGRAM hostname:processid
STATUS hostname:processid
Bilgi Sorguları
WHOAMI [hostname]
GETTIME [hostname]
GETINFO hostname [kaynak]
Komut Kategorileri
1. Dosya Sistemi Komutları
- Dosya transferi ve manipülasyonu
- Dizin listeleme ve gezintisi
- Meta veri alma (izinler, zaman damgaları)
2. İşlem Kontrol Komutları
- Uzak host'larda program yürütme
- İş kuyruğu yönetimi
- İşlem sonlandırma ve durum
3. Durum ve Bilgi Komutları
- Host durum sorguları
- Kaynak kullanılabilirlik bilgisi
- Ağ topolojisi bilgisi
4. Kimlik Doğrulama Komutları
- Kullanıcı tanımlama
- İzin doğrulama
- Erişim kontrolü
5. Yönetim Komutları
- Hesap yönetimi
- Kaynak tahsisi
- Sistem yapılandırması
Uygulama Hususları
Ayrıştırıcı Gereksinimleri
Her host şunları destekleyen NCL ayrıştırıcısı uygulamalıdır:
- Komut ayrıştırma ve doğrulama
- Argüman işleme
- Hata tespiti
- Yanıt biçimlendirme
Taşıma Mekanizması
NCL komutları şu yollarla iletilir:
- Birincil TCP bağlantısı: Etkileşimli komut dizileri için
- Yardımcı bağlantılar: Veri yoğun işlemler için
- Mesaj odaklı protokoller: ARPANET spesifikasyonlarına göre
Hata Raporlama
SUCCESS: işlem tamamlandı
ERROR: kod [açıklama] [detaylar]
WARNING: kod [mesaj]
TIMEOUT: işlem tamamlanmadı
REJECTED: işleme izin verilmedi
Dönüş Değerleri
Komutlar şunları döndürmelidir:
- Durum kodu: Başarı/başarısızlık göstergesi
- Sonuç verisi: Çıktı veya dosya içeriği
- Meta veri: Zaman damgaları, dosya boyutları vb.
- Hata bilgisi: Detaylı başarısızlık nedeni
Standardizasyonun Faydaları
Kullanıcılar İçin
- Tek komut sözdizimi öğrenme
- Herhangi bir ağ kaynağına kolayca erişim
- Host'lar arasında aktarılabilir beceriler
Yöneticiler İçin
- Tutarlı politika uygulaması
- Basitleştirilmiş erişim kontrol yönetimi
- Birleşik izleme ve günlükleme
Ağ İçin
- Azaltılmış bant genişliği ek yükü
- Basitleştirilmiş yönlendirme ve çeviri
- Daha iyi hata işleme
Geliştiriciler İçin
- Standart geliştirme hedefleri
- Kütüphane ve araç oluşturma
- Uygulama taşınabilirliği
Önem
RFC 15, sonunda şunlara evrimleşecek dağıtık bilişim ve ağ protokolleri hakkında erken düşünceyi temsil eder:
Tarihsel Etki
- Uzaktan Komut Yürütme: SSH, Telnet ve uzaktan kabuk protokollerini önceden gördü
- Standardizasyon: Heterojen sistemler arasında ortak ağ dili ihtiyacını belirledi
- Ağ Soyutlaması: Host-bağımsız komut arayüzleri kavramlarını tanıttı
- Kaynak Erişimi: Ağ-dağıtık dosya sistemleri için modellere öncülük etti
Modern Paralellikler
- API'ler: RESTful API'ler benzer birleşik arayüz sağlar
- Protokoller: HTTP evrensel komut yapısı sağlar
- Bulut Bilişim: Bulut sağlayıcılar ağ tabanlı kaynak erişimi sunar
- Konteyner Orkestrasyon: Kubernetes bildirimsel komut dili kullanır
Mimari Dersler
RFC 15, temel dağıtık sistem ilkelerini vurgular:
- Soyutlama: Uygulama detaylarını kullanıcılardan gizleme
- Standardizasyon: Ortak arayüzler aracılığıyla birlikte çalışabilirliği sağlama
- Durumsuzluk: Ölçeklenebilir kaynak erişimine izin verme
- Hata işleme: Güvenilirlik için açık durum bildirimi
Sonuç
NCL hiçbir zaman resmi olarak standartlaştırılmamış veya geniş çapta benimsenmemiş olsa da, RFC 15 ARPANET'in kurucu yıllarında ağ ölçeğinde kaynak erişimi ve komut standardizasyonu hakkında önemli düşünceyi belgeler.
Öneri, birleşik komut arayüzleri, uzaktan yürütme protokolleri ve dağıtık kaynak yönetimi dahil olmak üzere modern ağa bağlı sistemlerde standart hale gelecek birçok tasarım desenini öngördü.
Stanford Research Institute
Network Working Group
Ağustos 1969