İçeriğe atla

toprak.run/rfc/protokol/15

RFC 15 · Protokol

Ağ Komut Dili (NCL)

ASIL METİN 27 Ağustos 1969·Nils Nilsson, Stanford Research Institute (SRI) Arc

ÇEVİRİ tarih kayıtlı değil·ASLINI GÖR

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

  1. Giriş
  2. Ağ Komut Dili Hedefleri
  3. Temel Komut Yapısı
  4. Komut Kategorileri
  5. Uygulama Hususları
  6. Standardizasyonun Faydaları
  7. Ö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:

  1. Host-bağımsız: Unix, Tenex, IBM sistemlerinde çalışma
  2. Kullanıcı dostu: Tanıdık komut satırı arayüzlerine benzeme
  3. Ağ farkında: Asenkron işlemleri ve ağ gecikmelerini destekleme
  4. 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:

  1. Durum kodu: Başarı/başarısızlık göstergesi
  2. Sonuç verisi: Çıktı veya dosya içeriği
  3. Meta veri: Zaman damgaları, dosya boyutları vb.
  4. 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

  1. Uzaktan Komut Yürütme: SSH, Telnet ve uzaktan kabuk protokollerini önceden gördü
  2. Standardizasyon: Heterojen sistemler arasında ortak ağ dili ihtiyacını belirledi
  3. Ağ Soyutlaması: Host-bağımsız komut arayüzleri kavramlarını tanıttı
  4. 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