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

TELNET Protokolü

Yazar
T. O'Sullivan
Kurum
Raytheon
Tarih
19 Mayıs 1971
Durum
Network Working Group Yorum Talebi
Kanal
telnet/

| Yazar | T. O'Sullivan | | Kurum | Raytheon | | Tarih | 19 Mayıs 1971 | | Durum | Network Working Group Yorum Talebi | | RFC Numarası | 158 |


Bu yorum isteği, burada sunulan önerilen protokol hakkında görüş, değerlendirme ve değişiklik taleplerini toplamak amacıyla TELNET komitesi tarafından dolaşıma sokulmaktadır. Bu RFC’nin tarihinden itibaren iki hafta içinde yazara yorum ulaşmazsa, bunlar resmi TELNET PROTOKOLÜ belgesinin hazırlanmasında dikkate alınmayacaktır.

Önerilen belge, komitenin çalışmasının sonucudur. İlk uygulama için yeterli olduğu düşünülen bir TELNET protokolünü temsil etmektedir.

Okuyucular aşağıdaki önceki bilgi yayınlarına yönlendirilmektedir:

  1. Bir IBM 2741 Terminali veya Bir Kullanıcı Konsolunun Ağ Sunucu HOST’larına Erişim İçin Kullanımına İlişkin Kurallar

Joel Winett, RFC 110 (NIC #5809) 2. RFD 110’a Yanıt

Wayne Hathaway, RFC 135 (NIC #6712) 3. Lincoln Laboratory 360/67 HOST için Seviye III Sunucu Protokolü

Joel Winett, RFC 109 (NIC #5808) 4. Önerilen Bir TELNET Protokolü için İlk Taslak

J. Melvin, D. Watson, RFC 97 (NIC #5740) 5. Ağlar Arası Değişim için ASCII Biçimi

V. Cerf, RFC 20 (NIC #4722) 6. TELNET PROTOKOLÜ Tartışması

Tom O'Sullivan, RFC 139 (NIC 6717)

(Kullanımdan kaldırılmış RFC 137 (NIC 6714) ile ilgili olmasına rağmen, örneklerin çoğu hâlâ geçerlidir. Yerine geçecek bir tartışma belgesi olan RFC 159 (NIC 6769) yakın gelecekte yayımlanacaktır.)


TELNET PROTOKOLÜ

Önerilen Bir Belge

T. O'Sullivan, TELNET Komitesi adına


Telnet Protokolü

TELNET, işlevi bir kullanım noktasındaki bir terminalin (veya sürecin), bir hizmet noktasındaki bir sisteme ya da sürece, hizmet noktasına “doğrudan” bağlı bir terminalle mantıksal olarak eşdeğer görünecek şekilde sunulmasını sağlamak olan üçüncü seviye bir protokoldür. Bu işlevi yerine getirirken protokol, her bir HOST’un diğer HOST’ların özellikleri hakkında tutması gereken bilgi miktarını en aza indirmeye çalışır.

Tanımlar

Protokol Seviyeleri (bkz. Şekil 1)

Seviye 1

BBN tarafından NIC 5735’te belirtilen HOST-IMP protokolü, Bir HOST ile bir IMP’nin Birbirine Bağlanmasına İlişkin Özellikler (BBN Raporu 1822)

Seviye 2

Belge Numarası 1’de (NIC 5413) ve sonraki eklerde tanımlandığı üzere NCP’ler tarafından yürütülen HOST-HOST protokolü; bkz. RFC 107 (NIC #5806)

NCP’nin işlevine ilişkin bir bakış açısı, ağdan gelen bilgiyi alarak her HOST içindeki dahili mekanizmalar aracılığıyla alıcı süreçlere yönlendirdiği yönündedir; tersine, süreçler de dahili sistem çağrıları yoluyla NCP’yi kullanarak bilgilerin ağdaki diğer süreçlere (bu süreçlerin NCP’leri aracılığıyla) yönlendirilmesini sağlar.

Seviye 3 (bkz. Şekil 2)

Seviye 3, tanım gereği, NCP’nin kendi HOST’u içinde dahili olarak iletişim kurduğu ve iletişimi aldığı noktadır.

Bu seviye bazı sistemlerde kullanıcı süreci seviyesine eşdeğer olabilir, ancak bu tüm sistemler için geçerli olmayabilir. Kullanım noktalarında TELNET süreci bu seviyede çalışır. Hizmet noktalarında TELNET sunucusu bu seviyede çalışır.

Başlangıç Bağlantı Protokolü (ICP)

İki süreç arasındaki bağlantı diyaloğunu eşzamanlamak için genel olarak kullanılan, seviye 3’te üzerinde anlaşılmış bir dizi değişimdir; örneğin, daha sonraki bilgilerle revize edilmiş haliyle RFC 80 (NIC #5608) #1.

Hizmet Noktası

TELNET sürecinin kullanıcının klavye girdisini yönlendirdiği ve kullanıcının terminalini etkileyen kontrol bilgisi ile verileri aldığı HOST’tur. Hizmet noktasında bir TELNET sunucusu çalışmaktadır.

Kullanım Noktası

TELNET sürecinin çalıştığı HOST’tur.

Gönderen Nokta

Veri ileten HOST; kullanım noktası veya hizmet noktası olabilir.

Alan Nokta

Gönderen noktanın tersidir.

Kullanıcı

TELNET sürecini “yönlendiren” kişi veya süreçtir.


Ağ Sanal Terminali (NVT)

Hizmetlerin sağlanmasında TELNET protokolü, yukarıda atıfta bulunulan Ağ Denetim Programı ve Başlangıç Bağlantı Protokolü gibi yerleşik ağ kurallarını kullanacak ve kalıcı bağlantı üzerinde 8 bitlik bayt boyutunu esas alacaktır.

TELNET protokolü, kullanıcıların kullanım noktası ile hizmet noktası arasındaki bağlantılar üzerinden veri gönderip alabilmeleri için bir Ağ Sanal Terminali (NVT) sağlar.

NVT’nin kodu tam 7 bit ASCII olacaktır. Yedi bitlik kod, yüksek anlamlı bit sıfıra ayarlanmış şekilde sekiz bitlik baytlar içinde iletilecektir.

Kullanım noktasının sorumluluğu, kullanıcılarına tüm 128 ASCII kodunu ve ayrıca seçilmiş bir dizi özel TELNET kontrol sinyalini (bkz. Şekil 3) üretebilme imkânı sağlamaktır.

ASCII ESC karakteri, kullanıcı tarafından bir kaçış sinyali olarak kullanılacak ve bir sonraki karakterin/karakterlerin özel bir anlam taşıdığını gösterecektir. Kaçış koduna atanan anlam hizmet noktası tarafından tanımlanacaktır ve bu nedenle ağ genelinde tutarlı olmayabilir.

Hizmet noktasının sorumluluğu, yerel bir terminal tarafından normalde üretilen kodların NVT kodu kullanılarak nasıl temsil edileceğini kullanıcılara belirtmektir. Bu temsilin, makul olduğu ölçüde, yerel terminaller tarafından sağlanan ASCII grafik ve kontrol karakterleri için bire bir eşleme yapması beklenmektedir. Hizmet noktası ayrıca kaçış kurallarının sistem tarafından nasıl yorumlanacağını da belirtecektir.

Bir satırın sonu NVT’de satır başı (X'0D') ve ardından satır besleme (X'0A') ile temsil edilecektir.

Protokol, başlangıçta hizmet noktasının kullanım noktasına herhangi bir yankı sağlamayacağını varsayar.


TELNET Kontrol Sinyalleri

Bağlantı üzerinden kod gönderilmesi gereken her TELNET kontrol sinyali, yüksek anlamlı biti bire ayarlanmış sekiz bitlik bir kod ile NVT’de temsil edilecektir. Aşağıda bugüne kadar belirlenmiş özel kodlar yer almaktadır. (U), çoğu uygulamada kullanıcının terminalinden TELNET sürecine sinyal göndererek kodu başlatabilme yeteneğine sahip olmasının beklendiğini belirtir.

Kod X'A0'

Kod X'80'

Kod X'81'

Kod X'82'

Kod X'83'

Kod X'84'

Kod X'85'


Yerel TELNET Kontrol Sinyalleri

Bazı sistemlerde kullanıcının, kullanım noktasındaki TELNET sürecine kontrol bilgisi gönderebilmesine olanak tanımak için bazı özel TELNET kontrol sinyallerine ihtiyaç vardır [3]. Bunlar iletim için karşılık gelen bir kontrol kodu gerektirmez. Yerel TELNET kontrol sinyalleri şunlardır:

  1. Bu noktaya kadar olan tüm veriyi ilet.
  2. Satır sonunun iletimini bastır; diğer tüm verileri gönder.

Veriler, uygun olduğu ölçüde NCP’ye iletim için aktarılacaktır; ancak en azından satır sonunda, satır sonu bastırma durumunda ve iletim sinyallerinde bu aktarım yapılmalıdır. Gönderen noktanın normal satır uzunluğu, alan nokta tarafından verilen tahsisten büyükse, gönderen noktanın NCP’si, TELNET süreci veya TELNET sunucusu, tüm satır gönderilene kadar uygun uzunluklarda satır parçaları göndermeye hazır olmalıdır.


Asgari Uygulama

Kullanım Noktası

  1. Kullanıcıya (insan veya süreç), gerekli 8 bitlik alanda tüm 128 ASCII kodunun hizmet noktasına iletilmesini sağlayabilme yeteneği sun.
  2. Hizmet noktasından alınan tüm TELNET kontrol karakterlerini yoksay (ve ayıkla).
  3. Yerel kullanıcı terminalleri için yankı veya yerel yazdırma yeteneği sağla.
  4. CR-LF satır sonu kuralını destekle.
  5. Satır sonunu iletme veya bastırma için yerel TELNET kontrollerini uygula (yukarıdaki yerel TELNET kontrol sinyalleri tartışmasına bakınız).

Hizmet Noktası

  1. ASCII ile hizmet noktasının karakter ve kontrol kümesi arasında bire bir eşleme sağla (ve duyur) (ya da hizmet noktası kümesi 128’den büyükse bir alt küme).
  2. Kullanım noktasından alınan tüm TELNET kontrol karakterlerini yoksay (ve ayıkla).
  3. Kullanım noktasının yerel terminal yankısı veya yazdırma yeteneği sağlayacağını varsay.
  4. CR-LF satır sonu kuralını destekle.

Bu belge, NVT ASCII türüne ek olarak veri türleri için kurallar sağlamak üzere gerektiğinde gözden geçirilecektir.


Şekil 1. 2-31 Bağlantısı Üzerindeki Ağ Mesajı

Çeşitli seviyeler için ilgi alanlarını göstermektedir:

|||||||
message leader
||
message preamble
level 3
|

Şekil 2. Mevcut ve Aday Gelecek TELNET Yolları

USING HOST                                       Serving HOST
-----------------------+                      +----------------------
|                      |
\                   |                      |                  /
Sub- \ -----------------|  +-+            +-+  |-----------------/
Sys-  \                 |  |I|            |I|  |   NCP          /
tems+--->            |M|---NETWORK--|M|      ^      /
|  \     NCP       |  |P|            |P|  |  +-----|-----/
|   \              |  +-+            +-+  |  |     v    /
|    \             |                      |  | TELNET  /  USER
TELNET     )___________|                      |--|Protocol(   PROCESS
|      )           |                      |  |Server Sub
|    /             |                      |  |    ^^    \Systems
|   /     TTY      |                      |  +----||-----\ETC
User +--->   HANDLER   Local              |   TTY vv      \
Pro-   /                |   Terminals          |   Handles      \
cesses/-----------------|                      |-----------------\
/                  |                      |                  \
|                      |
-----------------------+                      +----------------------
 TELNET yolu

Şekil 3. Resmî Ağ Sanal Terminali Kodu

Kod Yapısı (Bitler 8–1)

+---------------------------+----+----+----+----+----+----+----+----+
|\ b8  ->                   | 0  | 0  | 0  | 0  | 0  | 0  | 0  | 0  |
| \ b7  ->                  | 0  | 0  | 0  | 0  | 1  | 1  | 1  | 1  |
|  \ b6  ->                 | 0  | 0  | 1  | 1  | 0  | 0  | 1  | 1  |
|B  \ b5  ->                | 0  | 1  | 0  | 1  | 0  | 1  | 0  | 1  |
| I  +---+---+---+---+------+----+----+----+----+----+----+----+----+
+  T | b | b | b | b |\COL->|    |    |    |    |    |    |    |    |
\   S| 4 | 3 | 2 | 1 | \    |    |    |    |    |    |    |    |    |
\   |   |   |   |   | |\   | 0  | 1  | 2  | 3  | 4  | 5  | 6  | 7  |
\  | | | | | | | | | v \  |    |    |    |    |    |    |    |    |
\ | v | v | v | v |ROW \ |    |    |    |    |    |    |    |    |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 0 | 0 | 0 | 0 |   0  |NUL |DLE | SP | 0  | @  | P  | \\  | p  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 0 | 0 | 0 | 1 |   1  |SOH |DC1 | !  | 1  | A  | Q  | a  | q  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 0 | 0 | 1 | 0 |   2  |STX |DC2 | "  | 2  | B  | R  | b  | r  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 0 | 0 | 1 | 1 |   3  |ETX |DC3 | #  | 3  | C  | S  | c  | s  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 0 | 1 | 0 | 0 |   4  |EOT |DC4 | $  | 4  | D  | T  | d  | t  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 0 | 1 | 0 | 1 |   5  |ENQ |NAK | %  | 5  | E  | U  | e  | u  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 0 | 1 | 1 | 0 |   6  |ACK |SYN | &  | 6  | F  | V  | f  | v  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 0 | 1 | 1 | 1 |   7  |BEL |ETB | '  | 7  | G  | W  | g  | w  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 1 | 0 | 0 | 0 |   8  | BS |CAN | (  | 8  | H  | X  | h  | x  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 1 | 0 | 0 | 1 |   9  | HT | EM | )  | 9  | I  | Y  | i  | y  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 1 | 0 | 1 | 0 |  10  | LF |SUB | *  | :  | J  | Z  | j  | z  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 1 | 0 | 1 | 1 |  11  | VT |ESC | +  | ;  | K  | [  | k  | {  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 1 | 1 | 0 | 0 |  12  | FF | FS | ,  |   | N  | ^  | n  | ~  |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
| 1 | 1 | 1 | 1 |  15  | SI | US | /  | ?  | O  | _  | o  |DEL |
+---+---+---+---+------+----+----+----+----+----+----+----+----+
Kod Yapısı      8   7   6   5   4   3   2   1

Genişletilmiş Kodlar (Yüksek Anlamlı Bit = 1)

+---------------------------+----+----+----+----+----+----+----+----+ |\ b8 -> | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | \ b7 -> | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | | \ b6 -> | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | |B \ b5 -> | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | | I +---+---+---+---+------+----+----+----+----+----+----+----+----+

'XX' = TELNET Denetim Sinyallerine atanan kodlar için HEX gösterimi.


Son Notlar

  1. Bir baytlık bir VERİ TÜRÜ sinyali, bir bağlantı üzerinden gönderilen verinin ilk baytı olarak iletilir. Bir bağlantı üzerindeki ilk baytın en yüksek anlamlı biti sıfıra ayarlanmışsa bir varsayılan kullanılır ve yedi bitlik ASCII NVT kuralının kullanılacağı varsayılır. Çoğu uygulama ve gerçekleştirim, herhangi bir zamanda VERİ TÜRLERİNİN simetrik olmasını bekleyebilir (yani her iki tarafın da aynı VERİ TÜRÜNÜ kullanan bir hizmet veren siteyi kullanması). Hâlihazırda kod atanmış olan diğer veri türleri şunlardır:
  2. X'A1' Şeffaflık
  3. X'A2' EBCDIC
  4. X'A3' TELNET'e Özel Dize (senin kodunu kullanacağım)
  5. X'A4' TELNET'e Özel Dize Sonu (benim kodumu kullanacağım)
  6. Yani parolanın yazdırılmasının bastırılması.
  7. Bazı durumlarda, uzun süreli özel işlemler için, yerel gerçekleştirim kullanıcıya açıkça iptal edilene kadar geçerli olacak bir "kip" ayarlamasına izin verilmesini gerektirebilir.

[Bu RFC, çevrimiçi RFC arşivlerine giriş için Lorrie Shiota tarafından 02/02 tarihinde makine tarafından okunabilir biçime dönüştürülmüştür]