Genel Bakış
Konu: IMP-HOST (Arayüz Mesaj İşlemcisinden Host'a) protokolünün resmileştirilmesi.
Amaç: IMP'ler ve bağlı host'ları arasındaki iletişim için tam protokolü tanımlamak.
Bağlam: RFC 1 ve RFC 7 ilgili konuları ele alırken, RFC 12 IMP perspektifinden kapsamlı protokol spesifikasyonu sağlar.
İçindekiler
- Protokol Genel Bakışı
- Bağlantı Türleri
- Mesaj Formatı
- Kontrol Mesajları
- Host'tan IMP'ye Komutlar
- IMP'ten Host'a Yanıtlar
- Hata İşleme
- Zamanlama ve Zaman Aşımları
- Önem
Protokol Genel Bakışı
IMP-HOST Arayüzü
IMP-HOST protokolü, bir Host Bilgisayarın Arayüz Mesaj İşlemcisi (IMP) ile nasıl iletişim kurduğunu tanımlar.
┌──────────────┐ IMP-HOST Protokolü ┌──────────┐
│ Host Bilgisayar├─────────────────────────────────→│ IMP │
│ │◄─────────────────────────────────┤ │
└──────────────┘ └────┬─────┘
│
Ağ
(diğer
IMP'lere)
Temel İlke
Host başlatır; IMP yanıt verir
- Host, birincil ve yardımcı bağlantılar aracılığıyla IMP'ye komutlar gönderir
- IMP komutları yürütür ve sonuçları döndürür
- Host'lar yalnızca yerel IMP'leri ile iletişim kurar
- IMP'ler ağlar arasında mesajları aktarır
Bağlantı Türleri
Birincil Bağlantı
Amaç: Komut ve kontrol mesajları
Özellikler:
- Düşük bant genişliğine sahip yol
- Bağlantı kurulumu için kullanılır
- Durum sorguları için kullanılır
- Akış kontrol sinyalleri için kullanılır
Tipik Kullanım:
Host → IMP: "UCLA-Host'a yardımcı bağlantı aç"
IMP → Host: "Bağlantı kuruldu (ID: 1234)"
Host → IMP: "Yardımcı 1234'te mesaj gönder"
IMP → Host: "Mesaj başarıyla gönderildi"
Yardımcı Bağlantılar
Amaç: Veri transferi ve toplu iletişim
Özellikler:
- Yüksek bant genişliğine sahip yol
- Dosya transferleri için
- Mesaj teslimi için
- Yüksek hacimli trafik için
Tipik Kullanım:
Host → IMP: 2000-bit "data.txt" dosyası gönder
[2000-bit dosya verisi]
IMP → Host: "Teslimat onaylandı"
Bağlantı Tanımlama
Her bağlantının bir bağlantı numarası vardır:
Bağlantı ID: 24-bit değer
Amaç: Bu IMP'deki her bağlantıyı benzersiz şekilde tanımla
Aralık: 0-16,777,215
Tahsis: IMP talep üzerine atar
Mesaj Formatı
HOST'tan IMP'ye Mesaj Yapısı
Lider (Sabit Format)
|||||
+──────────────┬──────────────┬──────────────┬─────────+
| Bağlantı# | Mesaj Türü | Mesaj Uzunluğu| Veri |
+──────────────┴──────────────┴──────────────┴─────────+
Alan Açıklamaları
| Alan | Boyut | Format | Amaç |
|---|---|---|---|
| Bağlantı# | 32 bit | İşaretsiz tamsayı | Bağlantıyı tanımlar |
| Mesaj Türü | 32 bit | Tür kodu (aşağıya bakın) | İşlemi belirtir |
| Mesaj Uzunluğu | 16 bit | Bayt sayısı | Takip eden veri boyutu |
| Veri | Değişken | İkili | Mesaj yükü |
Mesaj Türleri
Mesaj Türü Kodları
| Kod | Ad | Kimden | Amaç |
|---|---|---|---|
| 1 | SEND | Host→IMP | Mesaj/veri gönder |
| 2 | NOOP | Host→IMP | İşlem yok (canlı tut) |
| 3 | RFNM | IMP→Host | Sonraki mesaj için hazır |
| 4 | CLOSE | Host→IMP, IMP→Host | Bağlantıyı kapat |
| 5 | ERROR | IMP→Host | Hata bildirimi |
| 6 | RESET | Host→IMP, IMP→Host | Bağlantıyı sıfırla |
| 7 | STATUS | Host→IMP | Durum sorgula |
| 8 | CONTROL | Host→IMP | Kontrol işlemi |
Kontrol Mesajları
Bağlantı Açma
Host Başlatır:
HOST → IMP:
Bağlantı: 0 (tahsis talebi)
Tür: OPEN
Veri: [hedef-host][hedef-bağlantı|herhangi]
IMP → HOST:
Bağlantı: [tahsis-edilen-numara]
Tür: OPEN-ACK
Veri: [durum:başarılı/başarısız]
Örnek:
UCLA'daki host gönderir:
"Beni SRI-Host'a bağla, bağlantı 42"
IMP yanıt verir:
"Tamam, SRI'ye ulaşmanız için 1024 bağlantısı tahsis ettim"
Bağlantı Kapama
Host Başlatır:
HOST → IMP:
Bağlantı: 1024
Tür: CLOSE
Veri: [nazikçe|iptal]
IMP → HOST:
Bağlantı: 1024
Tür: CLOSE-ACK
Veri: [durum: kapatıldı]
CLOSE-ACK alındıktan sonra:
- Bağlantı tahsisi kaldırıldı
- Bu bağlantıda daha fazla mesaj gönderilemez
- Bağlantı numarası yeniden kullanılabilir
Akış Kontrol Sinyali
IMP Hazır Olduğunu Sinyaller:
IMP → HOST:
Bağlantı: 1024
Tür: RFNM (Sonraki Mesaj İçin Hazır)
Veri: [kabul-edilen-baytlar][mevcut-tampon]
Host Yanıtı:
RFNM alır → sonraki mesajı gönderebilir
Her RFNM bir mesaj değerinde tampon alanı gösterir
Host'tan IMP'ye Komutlar
SEND Komutu
Fonksiyon: Mesaj/veri ilet
HOST → IMP:
Tür: SEND
Bağlantı: [bağlantı-id]
Uzunluk: [bit-sayısı]
Veri: [mesaj-içeriği]
Host Sorumlulukları:
- Göndermeden önce RFNM alındığından emin ol
- Doğru formatta veri sağla
- Sonraki SEND'den önce onay bekle
- Zaman aşımı durumunda yeniden iletimi ele al
Örnek:
Tür: SEND
Bağlantı: 1024
Uzunluk: 1024 bit
Veri: [3-KB dosya içeriği]
NOOP Komutu
Fonksiyon: Canlı tutma sinyali; bağlantı durumunu doğrula
HOST → IMP:
Tür: NOOP
Bağlantı: [bağlantı-id]
Uzunluk: 0
Veri: (boş)
Amaç:
- Bağlantının hala aktif olduğunu doğrula
- Bağlantının çöp toplanmasını önle
- Host'un hala mevcut olduğunu sinyal ver
Sıklık: Tipik olarak bağlantı başına her 1-2 dakikada bir
STATUS Komutu
Fonksiyon: Bağlantı veya host durumunu sorgula
HOST → IMP:
Tür: STATUS
Bağlantı: [bağlantı-id veya genel için 0]
Uzunluk: 0
Veri: (boş)
IMP → HOST:
Tür: STATUS-RESPONSE
Veri:
- Aktif bağlantılar: [sayı]
- Mevcut tampon alanı: [bayt]
- Son gönderilen mesaj: [zaman]
- Hatalar: [hata-sayısı]
RESET Komutu
Fonksiyon: Hata veya kilitli durumdan kurtul
HOST → IMP:
Tür: RESET
Bağlantı: [bağlantı-id]
Veri: (boş)
IMP → HOST:
Tür: RESET-ACK
Veri: [durum]
IMP'ten Host'a Yanıtlar
RFNM (Sonraki Mesaj İçin Hazır)
|||
+──────────────┬──────────────+
| Bağlantı# | Mevcut Bayt |
+──────────────┴──────────────+
Semantik:
- Host BİR mesaj gönderebilir
- IMP önceki mesajla işini bitirdi
- Mevcut Bayt tampon alanını gösterir
Mesaj Teslim Edildi (Örtük)
Onay: Sadece RFNM göndermek teslimi onaylar
Açık "teslimat onayı" mesajı gerekmez; RFNM başarıyı ima eder
ERROR Yanıtı
IMP → HOST:
Tür: ERROR
Bağlantı: [bağlantı-id]
Veri:
- Hata Kodu: [hata türü]
- Sebep: [metin açıklaması]
Hata Türleri:
| Kod | Anlamı |
|---|---|
| 1 | Bilinmeyen bağlantı |
| 2 | Yasadışı mesaj türü |
| 3 | Hatalı biçimli mesaj |
| 4 | Hedef ulaşılamaz |
| 5 | Bağlantı reddedildi |
| 6 | Zaman aşımı |
| 7 | Uzak host çalışmıyor |
| 8 | Sağlama toplamı hatası |
Hata İşleme
Sağlama Toplamı Doğrulama
Gelişte, IMP kontrol eder:
- Mesaj sağlama toplamı doğru mu?
- Evetse: kabul et ve işle
- Hayırsa: at ve ERROR gönder
Host sorumluluğu:
- Göndermeden önce doğru sağlama toplamını hesapla
- ERROR alınırsa yeniden dene
Zaman Aşımı İşleme
IMP Zaman Aşımı:
Host mesaj gönderir
IMP RFNM gönderir
30 saniye içinde sonraki mesaj gelmezse:
- Canlı tutma sondası gönder
- Yanıt yoksa: bağlantıyı kapat
Host Zaman Aşımı:
Host mesaj gönderir
10 saniye içinde RFNM alınmazsa:
- Gönderimi yeniden dene
- 3 denemeden sonra: IMP'nin öldüğünü varsay
- RESET gönder
Bağlantı Durum Makinesi
Durumlar: KAPALI → AÇILIYOR → AÇIK → KAPANIYOR → KAPALI
↓
[HATA] → SIFIRLA
Zamanlama ve Zaman Aşımları
Zamanlama Parametreleri
| Parametre | Değer | Amaç |
|---|---|---|
| Mesaj TX süresi | ~100ms | 1024-bit mesaj gönderme süresi |
| RFNM yanıt süresi | ~50ms | IMP yanıt gecikmesi |
| Canlı tutma aralığı | 60 saniye | NOOP sıklığı |
| Bağlantı zaman aşımı | 300 saniye | Kapatmadan önce hareketsizlik |
| Yeniden iletim zaman aşımı | 10 saniye | Yeniden denemeden önce RFNM bekleme |
Uyarlanabilir Zamanlama
IMP zaman aşımlarını şunlara göre ayarlar:
- Ağ tıkanıklığı (RFNM'yi geciktirir)
- Host yanıt süreleri (sisteme göre değişir)
- Mesaj boyutu (daha büyük = daha uzun)
Önem
RFC 12, erken RFC'lerden host perspektifini tamamlayarak IMP perspektifinden tam IMP-HOST protokol arayüzünü belgeler.
Tarihsel Önem
Bu RFC şunları resmileştirdi:
- Paket ağları üzerinden bağlantı odaklı iletişim
- Açık onaylar (RFNM) aracılığıyla akış kontrolü
- Zaman aşımları ve yeniden denemelerle sağlam hata işleme
- Bağlantı durum makinesiyle durum bilgili protokol
Modern Paralellikler
RFC 12 kalıpları şunlarda görünür:
- TCP: Bağlantı kurulumu, ACK'ler, zaman aşımları
- HTTP: İstek-yanıt kalıbı
- TLS Handshake: Benzer durum makinesi
- Mesaj Kuyruk Protokolü: RFNM benzeri onay mekanizmaları
Temel İçgörü
Protokol, güvenilmez ağlar üzerinden güvenilir iletişimin açık onay ve zaman aşımı mekanizmaları gerektirdiğini gösterir.
Sonuç
RFC 12, IMP-HOST protokol spesifikasyonunu tamamlayarak şunları sağlar:
- Tam mesaj formatı spesifikasyonu
- Tüm komut türleri ve yanıtlar
- Hata işleme prosedürleri
- Zamanlama parametreleri ve zaman aşımları
RFC 1, 7 ve diğerleriyle birlikte, bu RFC ARPANET'i operasyonel hale getiren tam HOST-HOST ve IMP-HOST protokol paketini oluşturdu.
Bolt, Beranek and Newman (BBN)
Network Working Group
Ağustos 1969