← rfc/
╔══════════════════════════════════════════════════════════════════════════╗
RFC 393 · telnet

TELNET Protokolü Değişiklikleri Üzerine Yorumlar

Yazar
Kurum
Tarih
3 Ekim 1972
Durum
Network Working Group Yorum Talebi
Kanal
telnet/

Ağ Çalışma Grubu
Yorum İsteği: 393 Joel M. Winett
NIC 11585 Lincoln Laboratory
Kategoriler: TELNET LL-67
Referanslar: RFC 109, 139, 158, 318 ve 328 3 Ekim 1972

TELNET Protokolü Değişiklikleri Üzerine Yorumlar

Bu RFC aracılığıyla, RFC 328’de tanımlandığı üzere TELNET protokolünün değiştirilmesine yönelik üç öneriden ikisine itirazımı kayda geçiriyor ve TELNET Reverse Break Control Code’un yorumlanmasına ilişkin kendi önerimi ekliyorum.

1. Hide-your-input

Bu kod başlangıçta, sanal terminale yazdırmayı bastırma özelliğine sahip gerçek bir terminali benzetme yeteneği kazandırmak için TELNET protokolüne konulmuştur. Bazı kurulumlarda kullanılan terminaller yazdırma mekanizmasını devre dışı bırakma yeteneğine sahip değilse, kullanılan TELNET ya bu kodu yok sayabilir ya da işlevi başka yollarla benzetmeye çalışabilir (örneğin, belirli sayıda karakter konumunu karartıp ilk karakter konumuna geri dönerek). Zaman paylaşımlı bir sistemin ağ kullanıcısının, zaman paylaşımlı sistemin yerel bir kullanıcısıyla aynı olanaklara sahip olabilmesi için her türlü çaba gösterilmelidir. TELNET protokolünün tanımı, bir işlev tüm kullanıcılar tarafından desteklenemiyorsa kullanıcıların işlevlerini sınırlamamalıdır.

"Hide-your-input" ve "Echo" TELNET denetim kodları, bazı zaman paylaşımlı sistemlerde mevcut olan iki işlevin desteklenmesini sağlar. "Hide-your-input" işlevi aslında, sunucunun kullanıcıya yankılayacağını bildirdiği ancak gerçekte yankılamadığı bir "Echo" çalışma modu özel durumudur. Bu işlev için ayrı bir kod kullanılır; çünkü bazı sunucular bu işlevi destekleyebilirken tam "Echo" çalışma modunu desteklemeyebilir.

"Hide-your-input" ve "Echo" çalışma modları "No-echo" denetimi ile devre dışı bırakılır. Bu işlevler için ASCII denetim kodları seçilebilirdi; ancak NVT ASCII denetim kodlarının yalnızca yaygın olarak kullanılan işlevler için belirtilmesine karar verilmiştir.

Yazdırmanın bastırılacağı karakter sayısını belirtmek için, "Hide-your-input" TELNET denetimi, bastırılacak karakter sayısını göstermek üzere "Hide-your-input" denetiminden sonra gelen bir baytı içerecek şekilde yeniden tanımlanabilir. Yazdırmayı bastırma özelliğine sahip sistemlerin karakter saymak zorunda kalmaması için yine de "No-echo" denetimi gönderilecektir.

2. Veri Türleri

Protokol, bir sunucunun ASCII dışındaki karakter kodlarına sahip kullanıcıları desteklemesine olanak tanımalıdır; örneğin EBCDIC. Alternatif bir karakter kodunun tanımı, TELNET denetim kodlarının tanımını da içermelidir. RFC 109’da bir EBCDIC kodu önerilmiş ve Lincoln Laboratory 360/67 üzerinde uygulanmıştır. Ağ standart ASCII koduna geri dönülmesine izin verilmek isteniyorsa, ASCII olmayan kod ASCII’ye dönüşü belirten bir kod içermelidir.

3. Reverse Break

Break için kod, 129. ASCII veri kodu olarak tanımlanmıştır. Genellikle TELNET terminalinde karşılık gelen bir tuşa (break tuşu veya attention tuşu) basıldığında kullanıcının ağ sanal terminalinden bir sunucuya iletilir ve hizmet veren sistemler tarafından bu özel tuş olarak yorumlanır. Bu tuşun yaygın bir işlevi çalışan bir süreci kesmek olduğundan, bu kod ne zaman gönderilirse gönderilsin sunucunun bu kodun iletildiğinden haberdar edilmesi gerekir. Bu nedenle, hizmet veren sürecin alınan karakterleri incelemesini sağlamak için TELNET SYNC’in (TELNET veri işareti ile birlikte TELNET gönderme soketi üzerinde bir ağ kesmesi) de iletilmesi gerekir. Break işlevi için ASCII denetim kodu EOT (Sekizlik 4) seçilebilirdi; ancak bu kod tüm sistemler tarafından yorumlanmamaktadır. Bu nedenle, bu amaçla bir NVT TELNET denetim kodu kullanılmasına karar verilmiştir.

Break Kodunun sunucudan kullanıcı TELNET’ine doğru kullanımı daha önce tanımlanmamıştı ve bu nedenle satır-bazlı ve yarı çift yönlü sistemlerde ortaya çıkan aşağıdaki sorunları çözmek için kullanılabilir. Satır-bazlı sistemler karakterleri terminale tek tek değil, bunun yerine bir satır çıktı için hazır olana kadar bekleyerek gönderir. Bir CR-LF dizisi (satır sonu için TELNET protokolü) alındığında, bu bir satır sonu olarak yorumlanır ve alınan karakterler yazdırılır. CR-LF ile bitmeyen karakterler alındığında, kullanıcı TELNET’i geçerli satırın parçası olan başka karakterlerin gelip gelmeyeceğini bilemez. Bu nedenle, şimdiye kadar alınan karakterler CR-LF (yeni satır) olmadan yazdırılmalıdır. Bir mesaj sonu kodu iletilmiş olsaydı, kullanıcı TELNET’i çıktı için başka karakterlerin alınıp alınmayacağını bilebilirdi. Kullanıcı TELNET’i daha sonra karakterleri ya TELNET Break denetimi alındığında ya da CR-LF yeni satır dizisi alındığında yazdırırdı.

Kullanıcı TELNET’i yarı çift yönlü bir terminalden çalıştırılıyorsa, terminal aynı anda hem girdi alamaz hem de çıktı yazamaz. Bu nedenle, terminal girdi için kullanılırken çıktı alınırsa, TELNET programı ya alınan karakterleri arabelleğe almak ya da alınan karakterleri yazmak için girdi çalışma modunu sonlandırmak zorundadır. Alınan karakterler alındıkları anda yazdırılırsa, terminalin çalışması tam çift yönlü bir terminale çok benzer olur. Bu çalışma modu, girdi modunun program denetimiyle sonlandırılmasına izin vermek için terminalin reverse break yeteneğine sahip olmasını gerektirir.

Bazı sistemlerde, girdi çalışma modunun yalnızca çıktı için tam bir satır hazır olduğunda sonlandırılması istenir. Alınan bir karakter dizisi satır sonu kodu ile bitmiyorsa, alınan karakterler girdi satırı girilene kadar, yani çalışma modu girdiden çıktıya değişene kadar yazdırılmaz. Bir mesaj sonu kodu iletilmiş olsaydı, kullanıcı TELNET’i satır sonu kodu alınmamış olsa bile girdi çalışma modunu sonlandırabilirdi.

Reverse break özelliğini desteklemeyen sistemlerde veya terminal bu özelliğe sahip değilse, alınan karakterleri yazdırmak amacıyla bir girdi çalışma modunu sonlandırmak mümkün değildir. Bu durumda sistemler iki moddan birinde çalışabilir:

Özetle, bir mesaj sonu kodunun arzu edilir olduğu üç durum tanımlanmıştır:

Sunucudan kullanıcıya gönderildiğinde ASCII TELNET Break (Reverse Break) denetim kodu bir mesaj sonu kodu olarak yorumlanabilir.


Bu RFC, çevrimiçi RFC arşivlerine girilmek üzere Alex McKenzie’nin yönetiminde BBN Corp. tarafından makine tarafından okunabilir biçime dönüştürülmüştür. 1/97