← rfc/
╔══════════════════════════════════════════════════════════════════════════╗
RFC 283 · ftp

NETRJT -- TIPS için Uzaktan İş Hizmeti Protokolü

Yazar
Belirtilmemiş
Kurum
Belirtilmemiş
Tarih
Belirtilmemiş
Durum
Network Working Group Yorum Talebi
Kanal
ftp/

| Yazar | Belirtilmemiş | | Kurum | Belirtilmemiş | | Tarih | Belirtilmemiş | | Durum | Network Working Group Yorum Talebi | | RFC Numarası | 283 |


A. GİRİŞ

TIP'ler çok sınırlı işlem kapasitesine sahiptir; işlevleri esas olarak TELNET protokolünü kullanarak yazıcı-klavye aygıtlarını Ağa bağlamakla sınırlıdır. Ayrıca bir TIP üzerinde, DTP'nin sayım biçiminin bir alt kümesini kullanarak bir teyp sürücüsü bulundurmak da mümkün olacaktır (bkz. RFC #264). Ancak TIP'ler genel olarak ne DTP'yi ne de FTP'yi (bkz. RFC #265) destekleyebilir ve desteklemeyecektir. Bu nedenle TIP kullanıcıları mevcut herhangi bir uzaktan iş giriş protokolünü (örneğin CCN'nin NETRJS'i – bkz. RFC #189) kullanamaz.

Bununla birlikte, gelecekte TIP'lerin uzaktan iş girişi için aşağıdaki üç yoldan biri veya birkaçı ile kullanılmasının mümkün olabileceği görülmektedir:

(a) Yerel kart okuyucularını, satır yazıcılarını ve kart delgilerini doğrudan TIP portlarına bağlamak. Bu aygıtlar TELNET benzeri* bir biçim kullanacak ve karakterlerini Başlat/Durdur bitleri ile çerçeveleyecektir. BBN şu anda uygun bir 200 LPM yazıcı sağlayabilmektedir ve uygun okuyucu ve delgileri araştırmaktadır.

(b) Bir uzak toplu işlem terminalini bir iletişim hattı aracılığıyla tam çift yönlü bir TIP portuna bağlamak. BBN bunu incelemektedir.

(c) Teyp sürücüsünü kullanmak ve karttan teybe ve/veya teypten yazıcıya işlemlerini başka bir bilgisayarda gerçekleştirmek.

BBN, (b) durumunun sunucu ana bilgisayar açısından tam olarak (a) gibi görünmesini sağlamayı ummaktadır. Yani uzak toplu işlem terminali sunucuya TELNET benzeri bir biçimde* veri gönderecek ve ondan veri alacaktır; yazıcı, kart okuyucu, delgi ve operatör konsolu bağlantılarının tümü farklı soketler kullanacak ancak TIP üzerinde tek bir donanım portu üzerinden çalışacaktır; bu port birden fazla soketi tek bir porta eşleyecektir.

NOT: "TELNET benzeri biçim" ile şu kastedilmektedir: (a) mantıksal kayıtları (satırlar veya kartlar) ayırmak için CR_LF kullanılması ve (b) yazıcı akışında taşıyıcı kontrolü için ASCII veya EBCDIC biçim etkileyici kontrol karakterlerinin kullanılması. Bu ifade zorunlu olarak ASCII karakter kodlarını ima etmez.

Bu belge, CCN'nin NETRJS protokolünün, TIP'lere (a), (b) veya (c) yöntemlerinden birini kullanarak uzaktan iş girişi hizmeti sağlamak üzere özel olarak değiştirilmiş bir sürümü olan NETRJT'yi tanımlar. NETRJT, NETRJS'nin genel modelini izler: birincil veya "operatör" bağlantı çifti üzerinden TELNET protokolünü kullanmak ve iş akışı giriş ve çıkış verilerinin aktarımı için tek yönlü ikincil bağlantılar açmak. (Ayrıca TIP'in Divert Output mekanizmasını kullanarak uzaktan iş çıktısını operatör bağlantısı üzerinden göndermeyi ve giriş için benzer bir mekanizmayı kullanma olasılığını da değerlendirdik. Ancak Alex McKenzie ile yapılan görüşmelerde operatör bağlantılarını paylaşmanın çok az yarar sağladığı ve birçok soruna yol açtığı konusunda anlaşmaya varıldı).

NETRJT, NETRJS'den iki temel açıdan farklıdır:

  1. NETRJT sunucu süreci, uzak operatör konsolundan gelen komutların kontrolü altında veri aktarım bağlantılarını başlatır. Buna karşılık NETRJS altında ikincil veri aktarım bağlantılarının açılmasını başlatma sorumluluğu uzak kullanıcı sürecine aittir; NETRJS sunucusu yalnızca bu soketlerde dinleme yapar.
  2. NETRJT, veri aktarımı için yukarıda tanımlanan TELNET benzeri biçimi ve ayrıca TIP-teyp DTP biçimini sağlar. NETRJS ise mantıksal kayıtları DTP benzeri işlemler içinde ayırmak için yalnızca sayımları kullanmakla ve ASA taşıyıcı kontrolüyle sınırlıdır.

Bunun dışında bazı küçük farklılıklar da vardır. Örneğin, (1) NETRJT sunucusu, çıktı kayıtları kullanıcı komutuyla belirtilen bir boyutu aştığında bunları satır sonuna göre katlama sorumluluğunu üstlenir; NETRJS altında bu sorumluluk kullanıcı sürecine aitti. (2) Her veri aktarım bağlantısı için kayıt biçimini, kayıt boyutunu ve kodu ayarlamak üzere NETRJT operatör komutları vardır. NETRJS, ilk iki özelliği belirli bir terminal kimliğinin sabit özellikleri olarak kabul etmiş ve sonuncusunu ICP soket seçimine göre belirlemiştir. Bu farklılıklar, NETRJS komutlarına ek olarak NETRJT içinde uzak operatör komutlarının bulunmasını gerektirir. Operatörün (1) NETRJT'nin bir TIP soketine ikincil bağlantı açmasını sağlaması ve (2) veri aktarım protokolünü, maksimum mantıksal kayıt uzunluğunu ve/veya iletim kodunu belirtmesi gerekir. Bu NETRJT komutları bir sonraki bölümde ele alınmaktadır.

CCN, 15 Mart 1972'ye kadar ilk sürümü tamamlamayı hedefleyerek bir NETRJT sunucusunun gerçekleştirilmesine başlamayı planlamaktadır. Bu ilk sürüm yalnızca DTP=BS veya TT ve RECFM=TELNET veya RECORDS seçeneklerini destekleyebilir; diğer seçenekler ihtiyaç ortaya çıktıkça eklenecektir. Yorum ve önerileri memnuniyetle karşılarız.

Daha uzun vadede burada açıklanan NETRJT protokolünün, TIP'ler aracılığıyla uzaktan iş girişi için bir Ağ standardının ilk taslağı olarak değerlendirilmesi gerektiğine inanıyoruz. Mevcut haliyle NETRJT, Alex McKenzie (BBN), Jon Postel (NMC), Jim White (UCSB) ve Steve Wolfe (CCN)'un fikir ve yorumlarından büyük ölçüde yararlanmıştır.

B. NETRJT KOMUTLARI

NETRJT, NETRJS operatör komutlarına ek olarak uzak operatör bağlantısı üzerinden aşağıdaki komutları sağlar (bkz. RFC #189 Ek D). "#" sembolü bir veya daha fazla boşluğu ifade eder. Komut sözdizimini açıklamak için IBM meta-dilini kullanacağız. Burada büyük harflerle gösterilen sabit metinler gerçekte büyük ya da küçük harfle girilebilir.

1. Bir Akış Açma

O [PEN] #  (jobname) [=socket-number[/host-name]]

Belirtilen aygıtın zaten açık bir bağlantısı yoksa, NETRJT sunucusu belirtilen sokete bağlantı isteyecektir. İsteğe bağlı "(jobname)" parametresi belirli bir işi adıyla belirtmek için kullanılır; bu parametrenin anlamı hakkında daha fazla bilgi için aşağıda giriş ve çıkış işlemleriyle ilgili tartışmaya bakınız. Daha sonra uygulanacak olan "/host-name" parametresi, dosyanın hem kullanıcı hem de sunucu ana bilgisayarlarından farklı bir ana bilgisayarda bulunmasına izin vermek amacıyla düşünülmüştür. Buraya yalnızca bir sözdizimi önermek için dahil edilmiştir.

Soket numarası, onluk, onaltılık veya sekizlik anlamına gelmek üzere D, H veya O tek harfli son eklerinden birini alabilir. Varsayılan sekizliktir, bu nedenle O son eki atlanabilir. Eğer BBN belirli birim kayıt aygıtları için standart TIP soketleri belirlerse, standart soket numarası amaçlandığında soket numarası parametresi atlanabilir.

2. Bir Akışı Kapatma

CL [OSE]  [,A [CCEPT]]

Bu komut belirtilen veri aktarım bağlantısını kapatır. ACCEPT seçeneği, sunucuya ilettiği çıktıyı silebileceğini veya tam bir iş giriş yığını aldığını bildirmek için kullanılır. Ayrıntılar bir sonraki bölümde ele alınmıştır. Yalnızca tek bir aygıt akışı açıksa aygıt belirtimi (PR, PU veya R) atlanabilir.

3. Biçim ve Aygıt Özelliklerini Ayarlama

Aşağıdaki RJT komut varyantlarının her birinde "device" parametresi "PR [INTER]", "PU [NCH]" veya "R [EADER]" değerlerinden biridir.

RJT # D [TP] (device) = 
RJT # R [ECFM] (device) = 

Aşağıdaki seçenekler şimdilik geçicidir, çünkü TIP teypleri veya TIP'lere bağlı uzak toplu işlem terminalleri için hangi kayıt biçimlerinin yararlı olacağı henüz tam olarak net değildir.

RJT # SIZE (device) = integer

Bu komut belirtilen aygıt için maksimum mantıksal kayıt uzunluğunu ayarlar. NETRJT bu boyutu aşan tüm kayıtları otomatik olarak katlayacaktır. Varsayılan boyutlar:

RJT # CODE (device) = 

Bu komut kullanılacak kodu ayarlar.

C. CCN'DE NETRJT KULLANIMI

1. Başlarken

(a) Sunucu TELNET'e ICP gerçekleştirin (soket 1).

(b) "RJT" komutunu çalıştırın; NETRJT'den hazır mesajı alın.

(c) RJS SIGNON komutunu verin.

(d) Bu adımlar, bir RJS uzak operatör konsolu için standart bir tam çift yönlü TELNET bağlantısıyla sonuçlanır. Kullanıcı işlerinin durumunu öğrenmek, mesaj göndermek, işleri yeniden yönlendirmek veya iptal etmek vb. için komutlar verebilir.

2. Çıktıyı Alma

(a) TIP kullanıcısı yerel bir çıktı aygıtını yakalar ve ardından YAZICI veya DELGİ için NETRJT OPEN komutunu yürütür. Örneğin bağlantı henüz açık değilse aşağıdakilerden biri:

O  PR=socket
O  PR(*)=socket

yazıcı bağlantısını açar ve bu terminal kimliği için yazıcı kuyruğundaki ilk işi seçer.

O  PR(jobname)=socket

benzer şekilde bir bağlantı açar ancak belirli bir işin çıktısını seçer. Her iki durumda da çıktı henüz mevcut değilse bağlantı açık fakat boşta kalır ve çıktı ortaya çıktığında gönderilir. Soket numarası atlanmışsa ve bağlantı henüz açık değilse sunucu bir soket numarası isteyecektir.

(b) Belirtilen çıktı aygıtının zaten açık bir bağlantısı varsa aşağıdaki open komutlarından biri:

O  PR
O  PR(jobname)

son işin çıktısını kabul etmek (bkz. e. aşağıda) ve başka bir işin çıktısını seçip göndermek için kullanılabilir. Bağlantı zaten açıksa open komutu yine "=socket" belirtebilir; ancak belirtilen soket halihazırda açık olanla eşleşmezse bir hata mesajı oluşur.

(c) Çıkış akışı boşta iken kullanıcı DTP, RECFM, CODE ve/veya SIZE parametreleriyle RJT komutları verebilir.

(d) Belirtilen çıktı hazır olduğunda sunucu bir yazdırma satırı (veya delikli kart) görüntüleri akışı gönderecektir. Kullanıcı aşağıdaki RJS akış kontrol komutlarını verebilir (RJS komutları hakkında daha fazla bilgi için NIC 7182 ve 7183'e bakınız).

  1. BACKSPACE: basılmış çıktının yaklaşık son sayfasını tekrarlar.
  2. RESTART: çıktıyı mevcut SYSOUT veri kümesinin başından veya ("JOB" seçeneğiyle) işin başından yeniden başlatır.
  3. CANCEL: mevcut SYSOUT veri kümesinin geri kalanını veya (",JOB" seçeneğiyle) muhasebe bilgileri dışında tüm işi siler.
  4. DEFER: mevcut işin iletimini durdurur ve onu "ertelendi" olarak işaretleyerek kuyruğa geri gönderir. Daha sonra bir "backspace" ("RESET jobname" komutu) ile veya baştan ("RESTART jobname" komutu) yeniden başlatılabilir.

(e) Sunucu, iş çıktısı TIP'e tamamen iletilene ve kullanıcı onu kabul edene kadar iş çıktısını silmez. Kullanıcı "CLOSE device" komutu verirse veya bağlantı kazara koparsa (örneğin iki ana bilgisayardan birindeki yazılım ya da donanım arızası nedeniyle) ve çıktı kabul edilmeden önce bu durum oluşursa, sunucu çıktıyı örtük bir BACKSPACE ile saklar. Kullanıcı daha sonra bağlantıyı yeniden açtığında ve bu işi tekrar seçtiğinde (adıyla açıkça veya sıradaki işi çağırarak) çıktı yeniden gönderilir ve son sayfa tekrar edilir. Kullanıcı ayrıca bağlantıyı yeniden açmadan önce iş çıktısını erteleyebilir veya yeniden başlatabilir. ACCEPT seçeneği olmadan verilen CLOSE komutunun genellikle yazıcı kâğıdının sıkışması gibi durumlarda çıktı akışını durdurmak için kullanılan bir "panik" kontrolü olduğunu unutmayın.

(f) Gönderilen çıktı aşağıdaki durumlarda kullanıcı tarafından kabul edilmiş sayılır:

  1. Kullanıcı o aygıt için yeni bir OPEN komutu verir.

Bu RFC, Alex McKenzie'nin yönlendirmesi altında BBN Corp. tarafından çevrimiçi RFC arşivine eklenmek üzere makine tarafından okunabilir biçime dönüştürülmüştür (12/96).

  1. Kullanıcı o aygıt için "CLOSE device, ACCEPT" (örneğin "CL#PR,A") komutunu verir. Bu komut devam eden iş çıktısı tamamlanana kadar bekletilecektir. Son RFNM alındıktan sonra bağlantı kapatılacak ve iş çıktısı sunucu tarafında silinecektir.
  2. İlk OPEN komutunda "()" belirtilmişse, yani jobname için bir yıldız kullanılmışsa. Bu, aygıt akışının sürekli çalışacağı ve kullanıcının her çıktı işini açıkça talep etmek veya her birini ayrı ayrı kabul etmek istemediği anlamına gelir. Dolayısıyla akış "()" ile açılmışsa sunucu, son bloktan RFNM döndüğünde her işin kabul edildiğini varsayar.

3. Giriş Gönderme

(a)

Kullanıcı sunucuya aşağıdaki uzak operatör komutunu gönderir:

OPEN READER=socket

(Bu "O R=socket" şeklinde kısaltılabilir). Sunucu, kullanıcının TIP'inin dinliyor olması gereken kart okuyucu soketine bir RFC gönderecektir. Bağlantı açıldığında sunucu bir operatör mesajı verecektir. Sunucu ilk kart görüntüsünü alana kadar bağlantı boşta kabul edilecektir. Bağlantı zaten açıksa veya daha önceki bir open isteği beklemedeyse OPEN komutu yok sayılacaktır.

(b)

Open işleminden önce veya sonra, ancak bağlantı boşta iken kullanıcı kayıt biçimini, veri aktarım protokolünü, kodu ve/veya maksimum kayıt boyutunu farklı değerlere ayarlamak için RJT komutları verebilir.

(c)

Kullanıcı bir veya daha fazla işi oluşturan kart görüntülerinden oluşan bir akış gönderir. Kullanıcı CANCEL READER komutu verirse veya bağlantı koparsa (örneğin iki ana bilgisayardan birindeki yazılım ya da donanım arızaları nedeniyle) iş işlenmek üzere kabul edilmeden önce sunucu bu iş için biriktirilmiş görüntüleri işlem yapmadan silecektir. Daha sonra akış yeniden boşta durumuna döner.

(d)

Biriktirilmiş bir iş yalnızca aşağıdaki durumlardan biri gerçekleştiğinde sunucu tarafından kabul edilir:

  1. Sunucuya bağlı bir iş-sonu kartı (örneğin CCN'de "//null") sunucu tarafından alınır. Son iş kabul edilir ve başka bir kart alınana kadar akış boşta kalır.
  2. Sunucuya bağlı bir iş-başı kartı (örneğin CCN'de bir "JOB" kartı) sunucu tarafından alınır. Önceki iş kabul edilir ancak akış bu noktada boşta duruma geçmez.
  3. Kullanıcı sunucuya CLOSE READER,ACCEPT (veya "CL#R,A") komutu verir. Akış kapatılır.

(e)

Kullanıcı akışı kapatmak için CLOSE READER ("CL#R") komutunu verebilir. Ancak "CLOSE READER,ACCEPT" biçimi verilmediği sürece bu komut sunucu tarafından akış boşta olana kadar bekletilecektir. Bir CLOSE komutu bekleyen bir OPEN komutunu iptal eder ve bunun tersi de geçerlidir. Bir bağlantı açıldığında veya kapandığında sunucu uzak operatöre bir mesaj gönderecektir.

(f)

Bazı sunucular (örneğin CCN) her giriş işi için jobname değerini okuyucu akışından çıkaracaktır. Ancak OPEN komutu belirli bir jobname belirtebilir ve bu okuyucu akışındaki değerin yerine geçer. Yani OPEN komutundan gelen jobname, yeni açılan akıştaki ilk işte görünen jobname değerinin yerine kullanılır. Bu özellik yalnızca bir kolaylık olarak eklenmiştir ve esas olarak giriş ve çıkış arasında sözdizimsel tutarlılık sağlamak amacıyla dahil edilmiştir. Ancak jobname olarak yıldız kullanmanın okuyucu akışı için bir anlamı yoktur ve yok sayılır.