İçindekiler
- Giriş
- IMP Yazılımının Özeti
- Mesajlar
- Bağlantılar (Linkler)
- IMP İletimi ve Hata Kontrolü
- Açık Sorular
- Host-to-Host Yazılımı Üzerindeki Bazı Gereksinimler
- Basit Kullanım
- Derin Kullanım
- Hata Kontrolü
- Host Yazılımı
- Bağlantı Kurulması
- Yüksek Hacimli İletim
- Primitivlerin Özeti
- Hata Kontrolü
- Daha Yakın Etkileşim
- İlk Deneyler
Giriş
ARPA Ağı için yazılım kısmen IMP'lerde (Arayüz Mesaj İşlemcileri - Interface Message Processors) ve kısmen ilgili HOST'larda bulunmaktadır. BB&N, IMP'lerin yazılımını belirlemiştir ve HOST gruplarının HOST yazılımı üzerinde anlaşması gerekmektedir.
1968 yazında, ilk dört siteden temsilciler, HOST yazılımı ve ağ üzerindeki ilk deneyler hakkında tartışmak üzere birkaç kez bir araya geldi. Aşağıdaki kişilerden oluşan bir çalışma grubu ortaya çıktı:
- Steve Carr (Utah'tan)
- Jeff Rulifson (SRI'dan)
- Steve Crocker (UCLA'dan)
Bu üyeler sonbahar ve kış boyunca toplandılar; en son toplantı Mart ayının son haftasında Utah'ta gerçekleşti. SRI'dan Bill Duvall da katıldı. Ayrıca UCLA'dan Gerard DeLoche, HOST-IMP arayüzü üzerinde bağımsız olarak çalışmaktadır.
Bu belge, varılan geçici anlaşmaları ve karşılaşılan açık soruları sunmaktadır. Sunulan içerik henüz kesin değildir ve geri bildirim beklenmektedir.
I. IMP Yazılımının Özeti
Mesajlar
Bilgi, HOST'tan HOST'a mesajlar adı verilen paketler halinde iletilir. Bir mesaj, başlığıyla birlikte en fazla 8080 bit olan herhangi bir veri akışıdır.
Mesaj Başlığı Yapısı (16 bit)
| Alan | Bit | Açıklama |
|---|---|---|
| Hedef (Destination) | 5 | Hedef HOST için sayısal kod |
| Bağlantı (Link) | 8 | Bağlantı belirtimi |
| İz (Trace) | 1 | NMC'ye gönderilen durum bilgilerini kaydeder |
| Yedek (Spare) | 2 | Kullanılmamış |
Önemli Noktalar:
- Hedef alanı, mesajın gönderilmesi gereken HOST için sayısal kodu içerir
- İz biti, IMP'lere mesaj hakkında durum bilgilerini kaydetme ve Network Measurement Center'a (UCLA'daki NMC) geri gönderme sinyali verir
- Yedek bitler şu anda kullanılmamaktadır
Bağlantılar (Linkler)
Bağlantı alanı, IMP'ler tarafından belirli türdeki tıkanıklıkları sınırlamak için kullanılan özel bir araçtır.
Özellikler
- Her HOST çifti arasında, mesajların her iki yönde de iletilebileceği 32 mantıksal çift yönlü bağlantı vardır
- Akış kontrol kısıtı: Hedefteki IMP, RFNM (Sonraki Mesaj Talebi - Request for Next Message) adı verilen özel bir mesajı geri göndermeden önce, hiçbir HOST aynı bağlantı üzerinden arka arkaya iki mesaj gönderemez
- Bu düzenleme, gönderen HOST bir bağlantı üzerinden çok fazla göndermeye çalışıyorsa, bir HOST'un diğerine neden olabileceği tıkanıklığı sınırlar
İlkel Özellikler
- Her zaman çalışır durumdadır - IMP'ler her zaman başka bir mesaj iletmeye hazırdır. IMP yazılımında bir konuşmayı başlatma veya bitirme kavramı yoktur.
- Çift başına 32 bağlantı - Kullanımda olsun ya da olmasın her zaman 32 bağlantı vardır. Her IMP, gerçek trafikten bağımsız olarak her biri 32 girişli 18 tablo tutmalıdır.
İşbirliği hakkında not: Hedefteki IMP, tüm 32 bağlantıyı aynı anda işleyecek yeterli kapasiteye sahip olmadığından, bağlantılar amaçlarına yalnızca aşırı yükleme bir veya iki bağlantıdan geliyorsa hizmet eder. HOST'ların bu açıdan işbirliği yapması gereklidir.
IMP İletimi ve Hata Kontrolü
İşleme adımları:
- Bir HOST'tan bir mesaj aldıktan sonra, IMP mesajı bir veya daha fazla pakete böler
- Paketler en fazla 1010 bit uzunluğundadır ve IMP'den IMP'ye veri iletim birimidirler
- İletim donanımı tarafından 24-bit döngüsel sağlama toplamı (checksum) hesaplanır ve giden her pakete eklenir
- Sağlama toplamı, alıcı donanım tarafından yeniden hesaplanır ve iletilen sağlama toplamıyla karşılaştırılır
- Paketler, hedef IMP'de mesajlara yeniden birleştirilir
IMP Yazılımı Hakkında Açık Sorular
- Bağlantı belirtimi için 8-bit alan sağlanmış, ancak yalnızca 32 bağlantı sunuluyor. Neden?
- HOST'un IMP'sine mesaj gönderebilmesi gerekiyor. Bunu nasıl yapıyor?
- Bir HOST, IMP'sinin aksine, RFNM'leri kontrol edebilir mi?
- IMP'ler kod dönüşümü gerçekleştirecek mi? Nasıl kontrol edilecek?
II. Host-to-Host Yazılımı Üzerindeki Bazı Gereksinimler
Basit Kullanım
Her yeni tesiste olduğu gibi, kullanıcı topluluğu ağı deneyimleyip ona güvenmeye başlayana kadar çok hafif kullanım dönemi olacaktır. Bir hedef, geniş bir kullanıcı sınıfı tarafından anında ve kolay kullanımı teşvik etmektir.
Bunu başarmak için aşağıdaki yetenekleri sağlamak doğal görünmektedir:
- Herhangi bir uzak HOST'u sanki bir TTY (teletype) terminalinden çevrilmiş gibi kullanma
- Dosyaları biraz farklı bir şekilde, belki de sadece teletype simülasyonunun ötesinde iletme
Derin Kullanım
Ağdaki doğal sorunlardan biri, uzak bir HOST'tan gelen tüm yanıtların ne kadar basit olursa olsun yaklaşık yarım saniye veya daha fazla süre gerektireceği gerçeğidir.
Zorluklar:
- Teletype kullanımı için yarı-çift yönlü yerel yankı düzenlemesine geçebiliriz, ancak bu ağın bazı yararlılıklarını ortadan kaldırır
- Grafik istasyonları veya uzak bir HOST'un kontrolü altındaki diğer gelişmiş terminaller söz konusu olduğunda sorun daha ciddi hale gelir
- Gelişmiş ekipmanı mümkün olduğunca uzak bilgisayara doğrudan bağlıymışız gibi kullanmamıza olanak tanıyan yöntemler aramalıyız
Hata Kontrolü
SRI'daki Jeff Rulifson, büyük yazılım arayüzlerinde hata kontrolünün her zaman faydalı olduğunu, deneyimlerinde birçok anlaşmazlığı ve boşa harcanan çabayı önlediğini belirtmektedir.
Öneri: Biraz HOST'tan HOST'a kontrol görmek istiyoruz. Yazılım arayüzünü kontrol etmenin yanı sıra, HOST-IMP iletim donanımını da kontrol edecektir.
Not: BB&N, HOST-IMP donanımının HOST'un iç kayıtları kadar güvenilir olacağını iddia ediyor. Onlara inanıyoruz, ama yine de hata kontrolü istiyoruz.
III. Host Yazılımı
Bağlantı Kurulması
En basit bağlantı, yerel HOST'un bir TTY gibi davrandığı ve uzak HOST'u aradığı bağlantıdır.
Bağlantı Protokolü
- Bağlantı 0 (Link 0), HOST işletim sistemleri arasındaki iletişim için ayrılmıştır
- Kalan 31 bağlantı çevirmeli hatlar olarak kullanılır
- Her HOST işletim sistemi aşağıdakiler için primitivler sağlamalıdır:
- Uzak bir HOST ile bağlantı kurma
- Bağlantıyı kesme
Bağlantı Prosedürü
- Bir bağlantı primitivi çağrıldığında, işletim sistemi boş bir bağlantı seçer
- Seçilen bağlantıda bir bağlantı talep eden mesaj bağlantı 0 üzerinden uzak HOST'a gönderilir
- Uzak HOST'taki işletim sistemi kabul eder ve bağlantı 0 üzerinden bir kabul mesajı gönderir
Eşzamanlı Bağlantı İşleme
Her iki HOST de aynı bağlantıyı seçerek bir bağlantı başlatırsa ve her ikisi de aşağı yukarı aynı anda talep mesajları gönderirse:
- Basit bir öncelik şeması devreye girer
- Daha düşük öncelikli HOST vazgeçer ve başka bir boş bağlantı seçer
- Kullanılabilir bir öncelik şeması: HOST'ları tanımlama numaralarına göre sıralama
- Her iki HOST da eşzamanlı taleplerin yapıldığının farkındadır, ancak tamamlayıcı eylemler gerçekleştirir:
- Daha yüksek öncelikli HOST talebi dikkate almaz
- Daha düşük öncelikli HOST hem bir kabul hem de başka bir talep gönderir
Oturum Açma Öncesi Durum
Kurulan bağlantı oturum açma öncesi durumda TTY benzeri bir bağlantıdır:
- Uzak HOST işletim sistemi başlangıçta bağlantıyı sanki bir TTY yeni aramış gibi işler
- Uzak HOST aynı yankıları üretecektir
- Aynı oturum açma sırasını bekler
- Aynı kesme karakterlerini arar
Yüksek Hacimli İletim
Terminal olarak davranan teletypeler büyük bir dosya iletirken iki özel dezavantaja sahiptir:
- Bazı karakterler özel kesme karakterleridir
- Özel tamponlama teknikleri sıklıkla kullanılır (yalnızca düşük hızlı karakter-karakter iletimi için uygundur)
Dosya Benzeri Bağlantılar
Bu nedenle dosyaların veya diğer büyük hacimli verilerin iletimi için başka bir bağlantı sınıfı tanımlıyoruz.
Başlatma:
- Kurulmuş bir TTY benzeri bağlantının her iki ucundaki kullanıcı düzeyindeki programlar, TTY benzeri bağlantıya paralel bir dosya benzeri bağlantının kurulmasını talep etmelidir
- Yine öncelik şeması kullanılır: daha yüksek öncelikli HOST bağlantı 0 üzerinden bir mesaj gönderirken daha düşük öncelikli HOST bekler
- Boş bağlantının seçimi daha yüksek öncelikli HOST tarafından yapılır
- Kullanıcı düzeyindeki programlar bu ayrıntılarla ilgilenmez
Ayırt Edici Özellikler:
- Kesme karakteri araması yapılmaz
- Daha yüksek veri hızları için uygun tamponlama teknikleri kullanılır
Primitivlerin Özeti
Her HOST işletim sistemi, kullanıcılarına en azından aşağıdaki primitivleri sağlamalıdır. Bu listenin gerekli ancak yeterli olmadığı bilinmektedir:
- HOST x ile TTY benzeri bağlantı başlatma
- Bağlantıyı sonlandırma
- TTY benzeri bağlantı üzerinden karakter(ler) gönderme/alma
- TTY benzeri bağlantıya paralel dosya benzeri bağlantı başlatma
- Dosya benzeri bağlantıyı sonlandırma
- Dosya benzeri bağlantı üzerinden gönderme/alma
Hata Kontrolü
Her mesajın gövdesinde (IMP'ye saydam) aşağıdakileri taşımasını öneriyoruz:
- Mesaj numarası
- Bit sayısı
- Sağlama toplamı (Checksum)
Sağlama Toplamı Hesaplaması
- 1152 bit üzerinde hesaplanan 16-bit uçtan-uca taşıma toplamı
- Döngüsel olarak bir bit sağa kaydırılır
- Her 1152 bitteki sağa döngüsel kaydırma, IMP'ler tarafından mesaj yeniden birleştirmesindeki hataları yakalamak için tasarlanmıştır
Daha Yakın Etkileşim
Daha önce açıklanan primitivler, bir kullanıcının uzak bir tesisten nasıl basit kullanım yapabileceğini gösterir, ancak ağın daha karmaşık kullanımına dair çok az bilgi sağlar.
Gecikme Süresi Sorunu
Birçok site, bilgisayarlarını gelişmiş konsollara son derece duyarlı hale getirmek için önemli çaba harcamıştır:
- UCSB'deki Culler'ın konsolları
- SRI'daki Englebart'ın sistemi
Önemsiz yankı benzeri yanıtlar için yaklaşık yarım saniyelik gecikmeler, konsolun gelişmişliğini alakasız hale getirecek kadar etkileşimi bozar.
Önerilen Çözüm: DEL Dili
Konsol etkileşiminin çoğunun iki bölüme ayrılabileceğine inanıyoruz:
- Yerel, anında ve önemsiz - yankı yanıtları, karakter silme
- Uzak, uzun ve anlamlı - gerçek hesaplama
Örnek Senaryo:
Bir konsoldaki (klavye ve yenilenen ekran) kullanıcı, satır başı karakteri karşılaşılana kadar bir dizeye biriken karakterler yazar. İşlem:
- Karakterler yazıldıkça ekranda görüntülenir
- Silme karakteri, önceki silme-dışı karakteri siler
- Kullanıcı şunu yazarsa:
H E L L O(9 tuş vuruşu)
Sorun: Her tuş vuruşu uzak yanıt gerektiren bir mesaj gönderirse, sistem kullanılamaz hale gelir.
Çözüm: Ön ucu (<- ve <CR> arayan) yerel bilgisayarda bulundurma. Yalnızca beş karakterlik bir mesaj gönderilir: H E L P <CR>, ekran yerel olarak yönetilir.
DEL Uygulaması
Bu çözümü konsol kontrolü için DEL adlı bir dil oluşturarak uygulamayı öneriyoruz:
- Alt sistem tasarımcıları tarafından kullanılır - terminal bileşenlerini ve yanıtları belirtmek için
- Tüm siteler DEL derleyicileri yazacak
- İlk protokolün bir parçası olarak, uzak HOST konsolu kontrol eden programın kaynak dil metnini gönderir
- Alt sistem tasarımcıları tarafından DEL'de yazılan programlar yerel olarak derlenir
Bağlantı Kurma Sırası Diyagramları
A. Bağlantı Kurulmadan Önce
/ \
| +-----------+ +-----------+ |
| | | | | |
| | terminal | | terminal | |
| | | | | |
| +-----+-----+ +-----+-----+ |
| | | |
| +-----+-----+ +-----------+ |
| | | | Bağlantı 25 üzerinden | | | |
UCLA { | | | -> bağlantı talebi | | | } SRI
| | +-+-+ | +-+ +-+ | +-+-+ | |
| | | OS|---+-=|I|----------|I|=-+---| OS| | |
| | +-+-+ | +-+ +-+ | +---+ | |
| | | | | |
| +-----------+ +-----------+ |
| HOST: UCLA HOST: SRI |
\ /
B. Bağlantı Kurulması ve Oturum Açma Sonrası
/ \
| +-----------+ +-----------+ |
| | | | | |
| | terminal | | terminal | |
| +-----+-----+ +-----+-----+ |
| | | |
| +-----+-----+ "Lütfen ön uç +-----------+ |
| | | | kontrolünü gönder" | | | |
UCLA { | | | -> | | | } SRI ___
| | +-+-+ | +-+ +-+ | +--+---+ | | / |
| | | OS|---+-=|I|----------|I|=-+--|OS|NLS| +----+---| |
| | +-+-+ | +-+ +-+ | +------+ | | |___/
| | | DEL prog. | | |
| | | <- | | |
| +-----------+ +-----------+ |
| HOST: UCLA HOST:SRI |
\ /
C. DEL Programının Alınması ve Derlenmesi Sonrası
/ \
| +-----------+ +-----------+ |
| | | | | |
| | terminal | | terminal | |
| +-----+-----+ +-----+-----+ |
| |Önemsiz | |
| |Yanıtlar | |
| +-----+------+ +-----------+ |
| | | | | | | |
UCLA { | | | Ana Yanıtlar | | | } SRI ___
| | +--+--+ | +-+ +-+ | +--+---+ | | / |
| | |DEL |---+-=|I|----------|I|=-+--|OS|NLS| +---+---| |
| | |ön uç| | +-+ +-+ | +------+ | | |___/
| | |prog.| | | | |
| | +-----+ | | | |
| | | OS | | | | |
| | +-----+ | | | |
| | | | | |
| +------------+ +-----------+ |
| HOST: UCLA HOST: SRI |
\ /
IV. İlk Deneyler
Deney Bir
SRI şu anda, Ağ Dokümantasyon Merkezi'ndeki ana yazılım bileşeni olacak çevrimiçi geri alma sistemini, model 35 teletypeleri ile çalıştırılabilecek şekilde değiştiriyor. Teletypelerin kontrolü DEL'de yazılacak. Tüm siteler DEL derleyicileri yazacak ve NLS'yi DEL programı aracılığıyla kullanacak.
Deney İki
SRI, grafikler dahil tam NLS için bir DEL ön ucu yazacak. UCLA ve UTAH, NLS'yi grafiklerle kullanacak.
DEL ve Uygulama Üzerine Açık Sorular
- IMP'ler kod dönüşümü yaparsa, sağlama toplamı doğru olmayacaktır
- DEL ön ucunu talep etme prosedürü henüz belirlenmemiştir
Özet
Bu RFC, erken ARPA Ağı için HOST yazılım mimarisi ile ilgili geçici anlaşmaları ve devam eden tartışmaları belgeler. Aşağıdakiler için temel kavramları oluşturur:
- Mantıksal bağlantılar aracılığıyla mesaj iletimi
- Hostlar arasında bağlantı yönetimi
- TTY benzeri ve dosya benzeri iletişimler için farklılaştırılmış hizmet kanalları
- DEL dil çerçevesi aracılığıyla gelişmiş konsol etkileşimi
Belge, hostlar arasında işbirliği ihtiyacını vurgular ve önemsiz etkileşimlerin yerel işlenmesi yoluyla ağ gecikme sınırlamalarının üstesinden gelmek için yenilikçi çözümler önerir.
Belge Tarihi: 7 Nisan 1969
Network Working Group
University of California, Los Angeles (UCLA)