İçeriğe atla

toprak.run/rfc/telnet/729

RFC 729 · Telnet

TELNET Bayt Makro Seçeneği

ASIL METİN 13 Mayıs 1977·Dave Crocker, Rand-ISD

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

Network Working Group
Dave Crocker, Rand-ISD
Request for Comments: 729
NIC: 40306
13 Mayıs 1977

1. Komut adı ve kodu:

BM 19

2. Komut Anlamları:

IAC WILL BM

Bu komutun göndericisi, BM seçeneğini kullanmayı TALEP EDER veya KABUL EDER ve daha uzun veri dizileri gönderilmiş gibi yorumlanacak tekil veri karakterleri gönderecektir.

IAC WON'T BM

Bu seçeneğin göndericisi, daha uzun veri dizileri gönderilmiş gibi yorumlanacak tekil veri karakterleri göndermeyi REDDEDER.

IAC DO BM

Gönderici, diğer tarafın (WILL BM gönderen tarafın) daha uzun veri dizileri gönderilmiş gibi yorumlanacak tekil veri karakterleri göndermesini TALEP EDER veya KABUL EDER.

IAC DON'T BM

Gönderici, diğer tarafın daha uzun veri dizileri gönderilmiş gibi yorumlanacak tekil veri karakterleri göndermesine İZİN VERMEYİ REDDEDER.

IAC SB BM <DEFINE> <macro byte> <count> <expansion string> IAC SE

Burada:

  • <macro byte> ağ üzerinden gerçekten gönderilecek veri baytıdır; Telnet IAC (ondalık 255) OLAMAZ.

  • <count> bir baytlık ikili sayıdır ve bitişteki IAC SE’ye kadar, ancak onu içermeyecek şekilde, kaç adet <expansion string> karakterinin geldiğini belirtir.

  • <expansion string> <macro byte>’ın temsil edeceği, bir veya daha fazla Telnet ASCII karakteri ve/veya komuttan oluşan bir dizgedir; herhangi bir karakter bir <expansion string> içinde yer alabilir.

Belirtilen <macro byte>, belirtilen <expansion string> yerine gönderilecektir. <macro byte>’ı alan taraf (DO BM gönderen taraf), ağdan <expansion string> baytlarının gerçekten alınmış olması durumunda göstereceği davranışın AYNISINI sergileyecektir. Bu yorumlama, <macro byte> bir BM alt komutunun parçası olarak ortaya çıkmadığı sürece, diğer tüm Telnet yorumlamalarından önce gerçekleşecektir; bu durumda herhangi bir özel yorumlama yapılmayacaktır.

Belirli bir <macro byte>’ın etkisinin, kendisine "genişleyecek" şekilde sıfırlanarak geçersiz kılınabileceğine dikkat edilmelidir.

<DEFINE> ondalık 01’dir.

IAC SB BM <ACCEPT> <macro byte> IAC SE

<macro byte> için <DEFINE> alan taraf, istenen tanımı kabul eder ve bir <macro byte> alındığında ve bu bir BM alt komutunun parçası olmadığında belirtilen genişletmeyi gerçekleştirecektir.

<ACCEPT> ondalık 02’dir.

IAC SB BM <REFUSE> <macro byte> <REASON> IAC SE

<macro byte> için <DEFINE> alan taraf, belirtilen <macro byte>’tan <expansion string>’e çevirimi gerçekleştirmeyi, ya ilgili <macro byte>’ın kabul edilebilir bir seçim olmaması ya da <expansion string> uzunluğunun mevcut depolamayı aşması nedeniyle reddeder.

<REFUSE> ondalık 03’tür.

<REASON> şunlar olabilir:

  • <BAD CHOICE> ki ondalık 01’dir; veya
  • <TOO LONG> ki ondalık 02’dir.

IAC SB BM <LITERAL> <macro byte> IAC SE

<macro byte>, <expansion string>’in temsili olarak değil, gerçek veri olarak ele alınacaktır.

<LITERAL> ondalık 03’tür.

3. Varsayılan:

WON'T BM — DON'T BM

Verilerin yeniden yorumlanmasına izin verilmez.

4. Seçenek için motivasyon:

Telnet seçenekleri için alt komutlar, şu anda ağ üzerinden gönderilmek üzere en az beş karakter gerektirir (yani, IAC SB <Seçenek adı> IAC SE). Mutlak sayılar açısından ve normal veriye oranla seyrek kullanılan alt komutlar için bu ek yük tolere edilebilir. Ancak diğer durumlarda bu böyle değildir. Örneğin, blok odaklı biçimde gönderilen veriler bir "blok ayırıcı" işaretine ihtiyaç duyabilir. Bloklar yaygın olarak beş veya on bayt kadar küçükse, ağ üzerinden geçen verinin büyük bölümü denetim bilgisi olacaktır. BM seçeneği, bu ek yükü iletişim kanalından kaldırmak amacıyla basit bir veri sıkıştırma tekniği olarak düşünülmüştür.

5. Seçeneğin açıklaması

Seçenek, standart Telnet Seçenek müzakere süreci aracılığıyla etkinleştirilir. Bundan sonra, verinin GÖNDERİCİSİ (IAC WILL BM gönderen taraf), tekil ve çoklu NVT karakterleri arasında eşlemeler tanımlamakta ve kullanmakta serbesttir. Toplu bir reddetme sunma yeteneği dışında, verinin alıcısının eşlemelerin tanımı ve kullanımı üzerinde hiçbir denetimi yoktur.

Göndericinin (WILL BM gönderen tarafın), bir <DEFINE>’a yanıt olarak bir <ACCEPT> veya <REFUSE> alana kadar bir <macro byte> kullanması veya yeniden tanımlaması yasaktır.

NOT: Telnet komut karakteri IAC (ondalık 255), bir <expansion string>’in üyesi olabilir, ancak <macro byte> olarak tanımlanamayacak TEK karakterdir. DİĞER TÜM Telnet komut karakterleri IAC’yi bir ön ek olarak kullanır ve bu nedenle normal veri baytlarının kullandığı veri alanından AYRI bir bölüm işgal eder.

IAC haricinde, BM alt komutlarının bir parçası olarak aktarılan veriler YORUMLANMAYACAKTIR. Yalnızca normal karakter değerleri olarak ele alınacaklardır. Bu durum, bir karakterin <macro byte> olarak ele alınıp karşılık gelen <expansion string> olarak yorumlanması ile aynı karakterin olağan Telnet NVT değeri olarak ele alınması arasındaki ayrımı yapma sorununu ortadan kaldırır. Ancak diğer tüm durumlarda, <macro byte>’lar, <expansion string> gerçekten ağ üzerinden gönderilmiş gibi derhal yorumlanacaktır. Genişletilmiş dizgiler yeniden yorumlamaya tabi değildir; böylece özyinelemeli tanımlar yapılamaz.

<DEFINE> alt komutundaki <count>, alıcının depolama ayırmasına olanak tanır. BM alt komutları sırasında IAC yorumlaması geçersiz kılınmaz; böylece IAC SE, hatalı biçimlendirilmiş alt komutları güvenli bir şekilde sonlandırmaya devam eder. Bir <DEFINE>’in parçası olarak IAC dahil etmek için "IAC IAC" dizgesi gönderilmelidir.

BM seçeneği, <macro byte> tanımı sırasında ortaya çıkan sorunlar ve <macro byte>’ların gerçek veri olarak kullanımı açısından belirgin biçimde verimsizdir. Görece az sayıda <macro byte> tanımlanması ve bunların görece kısa dizgileri temsil etmesi beklenmektedir. Ondalık 128 ile ondalık 254 arasındaki Telnet veri alanı, özgün Telnet protokolünü kullanan uygulamalar dışında normalde kullanılmadığından, <macro byte>’ların genellikle bu havuzdan seçilmesi önerilir.