Genel Bakış
Konu: Ağ iletişimleri için ASCII karakter kodlamasının standardizasyonu.
Problem: Erken ARPANET host'ları farklı karakter kodlama şemaları kullanıyordu, bu da metin değişimini sorunlu hale getiriyordu.
Öneri: Tüm ağ iletişimi için evrensel karakter formatı olarak ASCII (American Standard Code for Information Interchange) oluşturma.
Önem: Bu standardizasyon tüm ağ protokolleri için temel oldu ve bugün hala standarttır.
İçindekiler
- Karakter Kodlama Problemi
- ASCII Standart Genel Bakışı
- ASCII Karakter Seti
- Ağ Uygulaması
- Dönüşüm Yönergeleri
- Kontrol Karakteri Kullanımı
- İletim Formatları
- Önem
Karakter Kodlama Problemi
Mevcut Durum
ARPANET host'ları uyumsuz karakter kodları kullanıyordu:
| Host Sistemi | Kodlama | Sorun |
|---|---|---|
| IBM 360/370 | EBCDIC | Metin sistemleriyle uyumsuz |
| PDP-10 (Tenex) | ASCII varyantı | 9-bit varyant standart dışı |
| Unix | 7-bit ASCII | Diğerlerinden biraz farklı |
| Diğer | Çeşitli | Standardizasyon yok |
Örnek Problem:
UCLA'dan mesaj (ASCII): H e l l o
IBM'de alınan (EBCDIC): ¿ È ô ô ø [okunamaz]
Sonuçlar
- Metin Değişimi: Dosyalar ağ genelinde okunamaz
- E-posta: Mesajlar iletimde bozuluyor
- Hata Ayıklama: Günlük dosyaları bozuk
- Taşınabilirlik: Yazılımı sistemler arasında taşımak zor
- Kullanıcı Hayal Kırıklığı: Temel metin iletişimi güvenilir değil
Standardizasyon İhtiyacı
Standardizasyon olmadan:
- Ağ metin için kullanılamaz hale gelir
- Geçici çözümler ve hileler çoğalır
- Kullanıcı güveni erozyona uğrar
- Her yeni host özel dönüştürme rutinleri gerektirir
ASCII Standart Genel Bakışı
ASCII Nedir?
ASCII = American Standard Code for Information Interchange (Bilgi Değişimi İçin Amerikan Standardı Kodu)
Ana Özellikler:
| Özellik | Değer |
|---|---|
| Karakter başına bit | 7 (artı isteğe bağlı 8. eşlik biti) |
| Toplam kod | 128 (7-bit) veya 256 (eşlikle 8-bit) |
| Yazdırılabilir karakterler | 95 (kodlar 32-126) |
| Kontrol karakterleri | 33 (kodlar 0-31) |
| Standart | ANSI X3.4 (Amerikan Standardı) |
| Köken | 1963'te yayınlandı |
| Benimseme | Bilişim endüstrisinde yaygın |
Neden ASCII?
Avantajlar:
- Standartlaştırılmış: Birçok üretici tarafından zaten benimsenmiş
- Basit: 7-bit kodlama, uygulaması kolay
- Uyumlu: Çeşitli donanım platformlarında çalışır
- Verimli: Metin için kompakt temsil
- Yazdırılabilir: Okunabilir alfanumerik karakterler
- Yerleşik: 1963'ten beri endüstri standardı
ASCII Karakter Seti
ASCII Karakter Tablosu
Yazdırılabilir Karakterler (32-126)
Boşluk'tan DEL'e (127)
0 1 2 3 4 5 6 7 8 9
0 SP ! " # $ % & ' ( )
1 * + , - . / 0 1 2 3
2 4 5 6 7 8 9 : ; ? @ A B C D E F G
4 H I J K L M N O P Q
5 R S T U V W X Y Z [
6 \ ] ^ _ ` a b c d e
7 f g h i j k l m n o
8 p q r s t u v w x y
9 z { | } ~ DEL
Kontrol Karakterleri (0-31)
| Kod | Kısaltma | Ad | Amaç |
|---|---|---|---|
| 0 | NUL | Null | Dolgu, hiçbir şey |
| 7 | BEL | Bell | Uyarı/dikkat sinyali |
| 8 | BS | Backspace | Önceki karakteri sil |
| 9 | HT | Horizontal Tab | Sonraki sekme durağına git |
| 10 | LF | Line Feed | Sonraki satıra geç |
| 11 | VT | Vertical Tab | Sütunlarda aşağı in |
| 12 | FF | Form Feed | Sonraki sayfaya geç |
| 13 | CR | Carriage Return | Satırın başına git |
| 27 | ESC | Escape | Özel dizi sinyali |
| 28-31 | FS,GS,RS,US | Ayırıcılar | Kayıt/alan/grup/birim ayırıcıları |
Detaylı Karakter Haritası
Büyük Harfler (65-90)
A(65) B(66) C(67) ... X(88) Y(89) Z(90)
Küçük Harfler (97-122)
a(97) b(98) c(99) ... x(120) y(121) z(122)
Rakamlar (48-57)
0(48) 1(49) 2(50) ... 8(56) 9(57)
Noktalama ve Semboller
SP(32) !(33) "(34) #(35) $(36) %(37) &(38) '(39)
((40) )(41) *(42) +(43) ,(44) -(45) .(46) /(47)
:(58) ;(59) (62) ?(63) @(64)
[(91) \(92) ](93) ^(94) _(95) `(96)
{(123) |(124) }(125) ~(126) DEL(127)
Ağ Uygulaması
Standart Ağ Metin Formatı
Kural 1: İletim Formatı
Ağda iletilen tüm metinler şunları kullanır:
- 7-bit ASCII (bitler 0-6)
- İsteğe bağlı 8. bit: Eşlik veya uzantı
- Satır sonlandırma: CRLF (Carriage Return + Line Feed)
- Kod: CR(13) LF(10)
- Dizi:
\r\n
Kural 2: Mesaj Başlığı
[Satır 1] Başlık bilgisi
[Satır 2] Konu/başlık
[Satır 3] (boş satır)
[Satırlar 4+] Mesaj gövdesi
[Son Satır] İmza/kapanış
Örnek E-posta Formatı:
From: kullanıcı@host
To: alıcı@host
Date: 1969-10-16 14:30:00
Subject: Ağ testi
Bu, ASCII iletimini gösteren bir test mesajıdır.
Saygılarımla,
Vint Cerf
Kural 3: Dosya Transfer Formatı
Dosyalar şu şekilde transfer edilir:
- ASCII'de dosya meta verisi (ad, boyut, tarih)
- ASCII veya ikili dosya içeriği
- İkili ise: 7-bit kodlama kullan (örn., base64 benzeri)
- Bitiş işaretçisi: açık EOF sinyali (RFC 13'e göre)
Dönüşüm Yönergeleri
IBM EBCDIC Sistemleri İçin
Dönüşüm Tablosu (EBCDIC → ASCII):
EBCDIC 'A' (0xC1) → ASCII 'A' (0x41)
EBCDIC 'a' (0x81) → ASCII 'a' (0x61)
EBCDIC '0' (0xF0) → ASCII '0' (0x30)
EBCDIC ' ' (0x40) → ASCII ' ' (0x20)
Uygulama Yaklaşımı:
- Host'ta dönüşüm arama tablosu oluştur
- Tüm giden mesajlar: EBCDIC → ASCII
- Tüm gelen mesajlar: ASCII → EBCDIC
- Host yazılımı şeffaf şekilde işler
PDP-10 9-bit ASCII İçin
Dönüşüm Prosedürü:
- Tenex'ten 9-bit karakter kabul et
- biti çıkar (yüksek seviyeli bit)
7-bit ASCII karakterini ilet Alıcı host 8. biti 0'a ayarlar (veya eşlik kullanır)
Yeni 8-bit Sistemler İçin
Öneri:
- 0-6 bitlerinde ASCII kullan
- Bit 7 seçenekleri:
- Hata kontrolü için çift/tek eşlik
- Sıfır (kullanılmıyor)
- Özel karakterler için uzantı
Kontrol Karakteri Kullanımı
Ağ Açısından Önemli Kontrol Karakterleri
Kritik Sinyaller
| Karakter | Kod | Ağ Amacı | Örnek |
|---|---|---|---|
| CR | 13 | Satır sonu | Mesaj satır sınırını işaretle |
| LF | 10 | Satır besleme | Sonraki satıra ilerle |
| ESC | 27 | Kaçış dizisi | Özel işleme |
| EOF | Özel | Dosya sonu | Dosya iletim sonunu işaretle |
TTY Kontrolleri (Uzaktan Oturum Açma İçin)
| Karakter | Kod | Etki |
|---|---|---|
| ^C | 3 | Kesinti (Ctrl+C) |
| ^D | 4 | Dosya sonu |
| ^S | 19 | Çıkışı durdur/duraklat |
| ^Q | 17 | Çıkışı devam ettir |
| ^Z | 26 | Askıya al (gelecek) |
Satır Sonlandırma Standardı
Ağ Standardı: CRLF (CR + LF)
Gerekçe:
- CR imleci satırın başına taşır (daktilo semantiği)
- LF sonraki satıra ilerler
- Birleşik: sonraki satırın başına taşır
- Çoğu sistemle uyumlu
Tel Formatı:
Metin ... [CR=13] [LF=10] ... Sonraki satır
İletim Formatları
Format 1: Satır Odaklı Metin
||CR|LF|
"Merhaba ARPANET" 13 10
||CR|LF|
"Bu bir testtir" 13 10
||CR|LF|
"" 13 10
Format 2: İkili Veri (Base64 Benzeri Kodlama)
ASCII olmayan veriler için, ASCII yazdırılabilir karakterler olarak kodla:
[İKİLİ VERİ BAŞLANGIÇ]
SGVsbG8gPT0gPHdvcmxk (base64 kodlama)
[İKİLİ VERİ BİTİŞ]
Format 3: Yapılandırılmış Mesajlar
[MESAJ BAŞLANGIÇ]
FROM[TAB]kullanıcı@UCLA[CR][LF]
TO[TAB]kullanıcı@SRI[CR][LF]
DATE[TAB]1969-10-16[CR][LF]
[CR][LF]
[ASCII'de mesaj gövdesi]
[CR][LF]
[MESAJ BİTİŞ]
ASCII Standardizasyonunun Faydaları
Anında Faydalar
- Birlikte Çalışabilirlik: Tüm host'larda okunabilir metin
- Hata Ayıklanabilirlik: Günlük dosyaları insan tarafından okunabilir
- Basitlik: Tüm sistemler için tek kodlama
- Verimlilik: 7-bit kodlama bant genişliğini azaltır
- Uyumluluk: Mevcut yazılımla çalışır
Uzun Vadeli Etki
- Protokol Geliştirme: Tüm protokoller ASCII kullanır
- E-posta Sistemleri: Standart kodlamayla mümkün
- Uzaktan Erişim: TTY iletişimleri standartlaştırıldı
- Dosya Transferi: İkili dosyalar kodlanabilir
- Ağ Hizmetleri: Tüm hizmetler için ortak temel
Önem
RFC 20, tüm ağ protokollerini şekillendirecek temel bir ilke oluşturur: tek bir karakter kodlamasında standardizasyon.
Ağ Geliştirmesi Üzerindeki Etki
ASCII ağın evrensel dili oldu:
- Metin tabanlı protokoller: HTTP, SMTP, FTP hepsi ASCII kullanır
- Mesaj standartları: E-posta, haber protokolleri
- Uzaktan erişim: Telnet ASCII'de standartlaştı
- Veri değişimi: İkili için Base64, hex kodlama
- Sistem yönetimi: Günlük dosyaları, yapılandırma dosyaları
Tarihsel Önem
- Ağlar için bir karakter kodlamasının ilk açık standardizasyonu
- Sonraki tüm metin tabanlı ağ protokollerini mümkün kıldı
- Onlarca yıl boyunca karakter kodlama standartlarını etkiledi
- Erken standardizasyon kararlarının değerini gösterdi
- ASCII'yi 50+ yıldır ağ lingua franca'sı olarak kurdu
Modern İlgililik
UTF-8 modern internet protokolleri için büyük ölçüde ASCII'nin yerini almış olsa da, ilke geçerli kalır:
- Ağ değişimi için bir kodlama
- Net spesifikasyon belirsizliği önler
- Evrensel benimseme birlikte çalışabilirliği sağlar
- Geriye dönük uyumluluk evrim için önemli
Öneri
Yürürlük Tarihi: Hemen
Tüm ARPANET host'ları şunları yapmalıdır:
- ASCII'yi standart metin kodlaması olarak benimse
- Gerektiğinde EBCDIC/ASCII dönüşümünü uygula
- Hata tespiti için 8-bit eşlik uygula
- Satır sonlandırıcı olarak CRLF kullan
- Tüm mevcut iletişim protokollerini güncelle
- Kullanıcılar için dönüşüm prosedürlerini belgele
Sonuç
RFC 20'nin ASCII'de standardizasyonu teknik olarak devrimci değildi ancak idari olarak kritikti. Bu basit standardizasyon şu anlama geliyordu:
- Ağ gerçek insan iletişimi için kullanılabilirdi
- Metin dosyaları güvenilir şekilde transfer edilebilirdi
- Farklı host sistemleri birlikte çalışabilirdi
- Protokoller metin tabanlı mesajlaşma kullanabilirdi
- Uzaktan erişim pratik hale geldi
Bu standardizasyonun başarısı, ağ büyümesini ve işlevselliğini sağlamada erken, net teknik kararların gücünü gösterir.
University of California, Los Angeles (UCLA)
Network Working Group
Ekim 1969